📄 shang_erzhi.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 算法说明 :
% 将灰度图像存入矩阵I中;(假设I为m×n的灰度矩阵)
% 横向扫描图像I的每一像素,分别记录下所有灰度值出现的次数;
% 求出矩阵I中不同灰度值出现的概率;
% 利用熵的定义求出图像I的熵
% 算法描述:
% 将灰度图像以矩阵形式存入I;(假设I为m×n的灰度矩阵)
% for i=1 to m
% for j=1 to n
% a= I(i,j); // 将矩阵I中第i行第j列的灰度值赋值给a
% S(a)= S(a)+1; // 统计灰度值为a的像素个数
% end
%end //横向扫描图像I中的每一个像素,分别统计灰度从0到255之间的像素个数
%P=S/(m*n); //分别统计灰度从0到255之间的像素出现的概率
%
%h=0; //熵的初始化
%for ii=1 to 256
% if P(ii)!=0
% h=h+P(ii)*log2P(ii);
% end
%end //利用熵的定义累加求图像I的熵值的负值
%
%H=-h; // H为图像的熵
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;clear all;close;figure;
[filename,pathname] = uigetfile('*.*','读入彩色图像');
[rgb,map] = imread([pathname,filename]);
% I=rgb2gray(rgb);
I=rgb;
[m,n] = size(I);
%I0=double(I)/255;
I0=I;
I1=double(I)+1;
subplot(2,2,1);imshow(I0);
subplot(2,2,2); imhist(I0,2); %显示柱状图
k = m*n;
s(256) = 0;
for i=1:m
for j=1:n
a=I1(i,j);
s(a)=s(a)+1;
end
end
p=s./k;
x=[1:1:256];
subplot(2,2,4); plot(x,s);
h=0;
for ii=1:256
if p(ii)~=0
h=h+p(ii)*log2(p(ii));
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -