求取图片方差均值图像与熵,批量读取xml文件或图片————MATLAB(三)

clear;
clc;
close all;
 
% [ 4.0-4000
% "20200720185352656"
% "20200720185352656"
% "20200720185405881"
% "20200720185352870"
% "20200720185415126"
% "20200720185353140"
% "20200720185415650"
% "20200720185353388"
% "20200720185415917"
% "20200720185354002"
% "20200720185416214"
% "20200720185422342"
% "20200720185356197"
% "20200720185424786"
% "20200720185359936"
% "20200720185435073"
% "20200720185405105"
% "20200720185436222"
% ];
%  [ 4.0-5000
% "20200720191040769"
% "20200720191040769"
% "20200720191046831"
% "20200720191053213"
% "20200720191101532"
% "20200720191040995"
% "20200720191047449"
% "20200720191054410"
% "20200720191101726"
% "20200720191041237"
% "20200720191047648"
% "20200720191054643"
% "20200720191101948"
% "20200720191041427"
% "20200720191047894"
% "20200720191054827"
% "20200720191102205"
% "20200720191041667"
% "20200720191048121"
% "20200720191055073"
% "20200720191103672"
% ];
% 
% [ 4.0-6000
% "20200720191616028"
% "20200720191616028"
% "20200720191622549"
% "20200720191653640"
% "20200720191703784"
% "20200720191616298"
% "20200720191640084"
% "20200720191654103"
% "20200720191705107"
% "20200720191616548"
% "20200720191640487"
% "20200720191654343"
% "20200720191705377"
% "20200720191616787"
% "20200720191640934"
% "20200720191654940"
% "20200720191705641"
% "20200720191617047"
% "20200720191641382"
% "20200720191659543"
% "20200720191711539"
% ];

name_string = [
"20200720183824578"
"20200720183824578"
"20200720183828905"
"20200720183824866"
"20200720183829259"
"20200720183825171"
"20200720183829545"
"20200720183825506"
"20200720183829861"
"20200720183825796"
"20200720183830167"
"20200720183826129"
"20200720183830803"
"20200720183826455"
"20200720183831137"
"20200720183826729"
"20200720183831426"
"20200720183827021"
"20200720183831820"
"20200720183828279"
];

length = strlength(name_string);
[m_len,n_len] =size(length);
 %%-----------------------------
%  filename=['D:\matlab\ae\ir_ae.txt'];
 for num=1:m_len
    str = name_string(num,1);  
%     xmlDoc = xmlread('C:\Users\Administrator\Desktop\ir_AE\data\质量较差图像\4.0_5000\20200720191040769@normal@[email protected]');
    str_xml_name =strcat(str,'@normal@[email protected]');
    path= 'C:\Users\Administrator\Desktop\ir_AE\data\40cm优质图像\';
    str_xml = strcat(path,str_xml_name);
    xmlDoc = xmlread(str_xml);
    
    roi_array = xmlDoc.getElementsByTagName('bndbox');
    roi = str2num(char(roi_array.item(0).getTextContent()));
    %% 
    str_pic_name = strcat(str,'@normal@[email protected]');
    str_pic = strcat(path,str_pic_name);
    origin =  imread(str_pic);
    standard=rgb2gray(origin);
    %%     
    ir_image_roi = imcrop(standard,[roi(1,1),roi(2,1),(roi(3,1)-roi(1,1)),(roi(4,1)-roi(2,1))]);
    
    ir_image=double(ir_image_roi);
    nbins=256;
    histogram(ir_image,nbins);
    [width,height] =size(ir_image);
    % figure()
    % subplot(1,1,1);
    % title('标准图');
    %% 
    image=ir_image; %载入灰度图像
    avg=mean2(image);  %求图像均值
    [m,n]=size(image);
    s=0;
    for x=1:m
        for y=1:n
        s=s+(image(x,y)-avg)^2; %求得所有像素与均值的平方和。
        end
    end
    %求图像的方差
    variance =var(image(:)); 
    %% 
    [C,L]=size(image); %求图像的规格
    Img_size=C*L; %图像像素点的总个数
    G=256; %图像的灰度级
    H_x=0;
    nk=zeros(G,1);%产生一个G行1列的全零矩阵
    for i=1:C
        for j=1:L
        Img_level=image(i,j)+1; %获取图像的灰度级
        nk(Img_level)=nk(Img_level)+1; %统计每个灰度级像素的点数
        end
    end

    for k=1:G  %循环
        Ps(k)=nk(k)/Img_size; %计算每一个像素点的概率
        if Ps(k)~=0 %如果像素点的概率不为零
        H_x=-Ps(k)*log2(Ps(k))+H_x; %求熵值的公式
        end
    end
    H_x  %显示熵值
    
%     save(filename,'avg',-ascii');
    merge_result = [avg,variance,H_x];
    dlmwrite('D:\matlab\ae\ir_ae\ir_ae.txt',merge_result,'delimiter','\t','newline','pc','-append');
    title(['index is =' ,num2str(avg),',  ',num2str(variance),',  ',num2str(H_x)])
   
    generate_ntype ='.bmp';
    str_name_gen = strcat(str,generate_ntype);
    saveas(figure(m_len), ['ir_ae\',char(str_name_gen)]);
    end
 

%% 
% 
% 
%    Jack
%    male
%    
Beijing
%     %       123456 %       012345 %     %
%% % read xml % name node % name_array = xmlDoc.getElementsByTagName('xmin'); % name = char(name_array.item(0).getTextContent()); % disp(['name:' name]); % % % phone element % phone_array = xmlDoc.getElementsByTagName('phone'); % phone = phone_array.item(0); % disp([char(phone.item(1).getNodeName()) ':' char(phone.item(1).getTextContent())]); % disp([char(phone.item(3).getNodeName()) ':' char(phone.item(3).getTextContent())]);

 

你可能感兴趣的:(MATLAB,ISP)