📄 junh.m
字号:
%绘制图像灰度直方图,灰度均衡曲线;对图像进行灰度均衡
clear all;
a=imread('C:\1.bmp');
[p,q]=size(a);
x=1:1:256; %设定X轴的范围
total=zeros(1,256); %用于存放0~255各级灰度出现的次数
b=double(a); %将创建原图像的副本并将其中的数据元素转换为double型,uint8型的数据无法进行计算
sum=0;
for i=1:p*q %统计0~255各级灰度在图象中出现次数
total(b(i)+1)=total(b(i)+1)+1;%由于total的下标从1开始到256而b(i)的范围是0~255,所以需要将b(i)的值加1才可以使b(i)和total对应
end;
for j=1:256 %统计0~255各级灰度的累计出现次数
sum=total(j)+sum;
jtem(j)=sum;
end;
for j=1:256 %统计0~255各级灰度累计出现频率,计算灰度变换曲线表
jtotal(j)=255*jtem(j)/sum;
end;
for i=1:p*q %在副本上生成原图像的灰度均衡图像
b(i)=jtotal(b(i)+1); %由于jtotal的下标从1开始到256而b(i)的范围是0~255,所以需要加1才可以使b(i)和jtotal对应
end;
b=uint8(b); %将b矩阵的元素转换为uint8类型
%以下是结果显示部分
subplot(2,2,1);
imshow(a);
title('原 图');
subplot(2,2,2);
y=total(x);
plot(x,y);
axis([0,255,0,max(total)+100]);
colorbar('horiz');
title('灰度直方图');
subplot(2,2,3);
z=jtotal(x);
plot(x,z);
title('灰度均衡曲线');
subplot(2,2,4);
imshow(b);
title('灰度均衡');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -