数字图像处理实验报告直方图均衡化.docx
《数字图像处理实验报告直方图均衡化.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验报告直方图均衡化.docx(8页珍藏版)》请在冰豆网上搜索。
![数字图像处理实验报告直方图均衡化.docx](https://file1.bdocx.com/fileroot1/2023-2/13/fed3b4a4-d89e-4cc4-a5eb-2ff25f321df9/fed3b4a4-d89e-4cc4-a5eb-2ff25f321df91.gif)
数字图像处理实验报告直方图均衡化
数字图像处理实验报告--直方图均衡化
源图像各点像素进行灰度转换,即可完成对源图的直方图均衡化。
一,调用matlab系统函数方式
(1)实验程序
clearall;
f=imread('cameraman.tif');
figure
(1)
imshow(f);
figure
(2)
imhist(f);%绘制图象f的直方图
ylim('auto');
g=histeq(f,256);%对f进行直方图均衡,输出图象的灰度级数为256
figure(3)
imshow(g);
figure(4)
imhist(g);
ylim('auto');
(2)实验结果:
图1:
原图图2:
原图的直方图
图3:
处理后的图图4:
处理后的直方图
二:
不用系统函数
(1)实验程序:
f=imread('cameraman.tif');%读取原图象
[m,n]=size(f);
figure
(1)
imshow(f);
gp=zeros(1,256);%创建一个全零矩阵,1×256,计算各灰度出现的概率
fori=1:
256
gp(i)=length(find(f==(i-1)))/(m*n);
end
figure,bar(0:
255,gp);
newGp=zeros(1,256);%计算新的各灰度出现的概率
S1=zeros(1,256);
S2=zeros(1,256);
tmp=0;
fori=1:
256
tmp=tmp+gp(i);
S1(i)=tmp;%各会灰度的累计概率
S2(i)=round(S1(i)*256);%将取整后的值存储在S2
end
fori=1:
256
newGp(i)=sum(gp(find(S2==i)));
end
figure,bar(0:
255,newGp);
fori=1:
256
newGrayPic(find(f==(i-1)))=S2(i);%用新的灰度填充以前旧的灰度值
end
figure,imshow(newGrayPic);
(2)实验结果:
图5:
原图图6:
原图的直方图
图7:
处理后的图图8:
处理后的直方图
三:
对比用这两种方式实现效果上的差异
调用系统函数的结果未调用系统函数的结果
尽管两者直方图的统计方式不同,左边是统计每个灰度值总的像素,右边是统计每个灰度值出现的概率,但形状基本相同。
I=imread('1.bmp');
J=imread('2.bmp');
Iq=imsubtract(I,J);%两幅图相减
imview(Iq)