一、实验任务与要求
1、实验任务:
- 读取图像,绘制直方图/归一化直方图(hist/histogram, subplot)
- 使用直方图均衡化函数(histeq)
- 自己实现直方图均衡化函数
2、要求:
- 提交 m 文件,代码中需注释直方图均衡化的关键步骤。
二、实验报告
实验代码:
%直方图均衡化函数
function img2 = myHisteq(img)[r,c]=size(img); %获取图像的大小%统计图像中各个灰度值出现的个数n=zeros(1,256);for i=1:rfor j=1:ck=img(i,j)+1;n(1,k)=n(1,k)+1;endend%统计图像中各个灰度值出现的概率p=zeros(1,256);for i=1:256p(1,i)=n(1,i)/(r*c);end%累计概率p_sum=zeros(1,256); p_sum(1,1)=p(1,1);for i=2:256p_sum(1,i)=p_sum(1,i-1)+p(1,i);end%变换函数TT=zeros(1,256);for i=1:256T(1,i)=255*p_sum(1,i);end%对每个像素点进行映射img2=ones(r,c); %创建一个rxc的全1矩阵img2=im2uint8(img2); %将图像转为uint8类型for i=1:rfor j=1:cimg2(i,j)=T(1,img(i,j)+1);endend end