📄 evaluate.m
字号:
function [stad_deviation,stad_variance,entropy] = evaluate(I)
%I为融合图像
%stad_deviation:融合图像的标准偏差
%variance:融合图像的标准方差
%entropy:融合图像的熵
%%
%求标准偏差
I1 = imread(I);
[sI,cI,bI] = size(I1);
t = 0.;h = 0.;
for i = 1:sI
for j = 1:cI
h = double(I1(i,j));
t = t+h^2;
end
end
stad_deviation = sqrt(double(t/(sI*cI-1)));
%%
%求方差
u =0.;
I2 = imread(I);
for i = 1:sI
for j = 1:cI
u = u+double(I2(i,j));
end
end
u = u/(sI*cI);
k = 0.;
for i = 1:sI
for j = 1:cI
y = double(I2(i,j));
k = k+(y-u)^2;
end
end
stad_variance = sqrt(double(k/(sI*cI)));
%%
%求图像的熵
I3 = imread(I);
I3 = double(I3)+1;
s(256) = 0;
for i = 1:sI
for j = 1:cI
va = I3(i,j);
s(va) = s(va)+1;
end
end
p = s./(sI*cI);
en = 0.;
for i = 1:256
if p(i)~=0
en = en+p(i)*log2(p(i));%概率取对数(以2为底)再乘以概率 最后连加取反
end
end
entropy = -en;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -