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@40@ir.xml');
str_xml_name =strcat(str,'@normal@40@ir.xml');
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@40@ir.jpg');
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
%%
% <?xml version="1.0" encoding="utf-8"?>
%
% 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())]);