2、,j);end, end,end,k%显示负片figure,imshow(rimage,map),title('负片');最小值:最大值求法类似,把第一个象素灰度级设为最小值,然后逐一比较。程序:[A,map]=imread('E:lena.bmp'); %显示原图imshow(A,map), title('原图');image=double(A);%求负片k=image(1,1);fori=1:256, forj=1:256, ifk>image(i,j); k=image
3、(i,j);end, end,end,k%显示负片figure,imshow(rimage,map),title('负片');均值:把图中的所有的象素值累加起来再除以图象的象素的个数。程序:[A,map]=imread('E:lena.bmp'); %显示原图imshow(A,map), title('原图');image=double(A);%求负片k=image(1,1);fori=1:256, forj=1:256, ifk>image(i,j); k=image(i,
4、j);end, end,end,k%显示负片figure,imshow(rimage,map),title('负片');直方图:把图中的不同灰度等级的象素分别累加起来,再分别除以图象象素的总数。即:p(sk)=nk/n。可以得到原图的灰度值分布图。参考程序:[A,map]=imread('e:lena.bmp'); imshow(A,map), title('原图');image=double(A);fori=1:256, a(i)=0;end,fori=1:256, forj=1:25
5、6, b=image(i,j)+1; a(b)=a(b)+1; end,end,fork=1:256, p(k)=a(k)/(256^2);end,figure,stem(p);title('直方图');二.对比度增强:直方图均衡:原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围从而达到增强对比度的效果。程序:[A,map]=imread('e:lena.bmp'); imshow(A,map), title('原图');i
6、mage=double(A);fori=1:256, n(i)=0;end,fori=1:256, forj=1:256, s=image(i,j)+1; n(s)=n(s)+1; end,end,fork=1:256, p(k)=n(k)/(256^2);end,figure,bar(p,'r');title('直方图');fork=1:256, q(k)=0;end,fork=1:256, forj=1:k, q(k)=q(k)+p(j); end,end,figure,bar(q,'
7、y');title('累积直方图');N=256;fork=1:256, o(k)=round((N-1)*q(k)+0.5);end,fori=1:256, forj=1:256, rimage(i,j)=o(image(i,j)); endendfigure,imshow(uint8(rimage));title('均衡化后的图');fori=1:256, n(i)=0;end,fori=1:256, forj=1:256, s=rimage