资源描述:
《用matlab程序进行图像处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、用MATLAB程序进行图像处理一.计算图像统计参数:最大值:扫描法:设第一个象素灰度级为最大值,然后与后一个象素灰度级比较,如果后面的大,则把后一象素值赋给最大值,依次逐一比较到图象最后的一个象素,找出最大值。参考程序:[A,map]=imread('E:lena.bmp'); %显示原图imshow(A,map), title('原图');image=double(A);%求负片k=image(1,1);fori=1:256, forj=1:256, ifk
2、mage(i,j); k=image(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
3、:256, ifk>image(i,j); k=image(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:25
4、6, forj=1:256, ifk>image(i,j); k=image(i,j);end, end,end,k%显示负片figure,imshow(rimage,map),title('负片');直方图:把图中的不同灰度等级的象素分别累加起来,再分别除以图象象素的总数。即:p(sk)=nk/n。可以得到原图的灰度值分布图。参考程序:[A,map]=imread('e:lena.bmp'); imshow(A,map), title('原图');im
5、age=double(A);fori=1:256, a(i)=0;end,fori=1:256, forj=1:256, 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.bm
6、p'); imshow(A,map), title('原图');image=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,
7、q(k)=0;end,fork=1:256, forj=1:k, q(k)=q(k)+p(j); end,end,figure,bar(q,'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,
8、 n(i)=0;end,fori=1:256, forj=1