數字圖像處理實驗二,MatLab編譯環境
實驗二 圖像灰度直方圖統計
一、實驗目的:
理解并掌握灰度直方圖的概念、計算灰度直方圖的方法以及如何應用直方圖均衡化來增強圖像對比度。
二、實驗環境:
計算機、Windows XP操作系統,Matlab7.0
三、實驗內容:
以灰度圖像pout.tif為例,運用Matlab編程實現灰度直方圖的統計以及直方圖均衡化處理過程:
(1)計算并繪制原始圖像的灰度直方圖;
(2)根據離散累計分布函數,對原始灰度直方圖進行均衡化處理,繪制均衡化后的灰度直方圖;
(3)生成均衡化處理后的新圖像,顯示并保存。
(4)比較原始圖像和新圖像的對比度。
grayimage=imread(\'pout.tif\');
[m,n]=size(grayimage);
gp=zeros(1,256);
for i=1:256
gp(i)=length(find(grayimage==(i-1)))/(m*n);
end
subplot(2,2,1),imshow(grayimage);
subplot(2,2,2),bar(0:255,gp);
//////////////////////////////
S1=zeros(1,256);
S2=zeros(1,256);
temp=0;
for i=1:256
temp=temp+gp(i);
S1(i)=temp;
end
S2=round(S1*255);
newgp=zeros(1,256);
for i=1:256
newgp(i)=sum(gp(find(S2==(i-1))));
end
subplot(2,2,4),bar(0:255,newgp);
//////////////////////////////
newgrayimage=grayimage;
for i=1:256
newgrayimage(find(grayimage==(i-1)))=S2(i);
end
subplot(2,2,3),imshow(newgrayimage);
imwrite(newgrayimage,\'newpout.tif\');