數字影象處理作業
【摘要】
在自然界中很多影象可能都不符合人的視覺特點,因此有必要根據影象的特點採用一定的方法增強影象的視覺感知效果。本次作業通過直方圖來增強影象,主要是對直方圖進行修正來達到視覺轉換。具體方法為直方圖均衡、直方圖匹配以及影象分割技術。
其中,直方圖均衡是調整影象的對比度使其增強;直方圖匹配是將所要處理影象的直方圖與已知直方圖進行類似匹配的方法;而影象分割是將一副影象的前景與背景區別開來的技術。
1. 把附件影象的直方圖畫出:
【注】:由於源影象中的附圖均是以索引圖的形式給出,因此在畫直方圖之前需要將其轉換成灰度圖。如果調色盤缺失,需要先將調色盤中缺失的色彩資訊補全之後,再用matlab工具箱提供的影象型別轉換函式(g=ind2gray(a,map)% 將索引圖轉換成灰度圖)進行型別轉換。
利用matlab工具箱,我們可以直接通過函式imhist( )來畫出影象的直方圖。
處理結果如下:
2. 把所有影象進行直方圖均衡;輸出均衡後的影象和源影象進行比對;分析改善內容;
【分析】:直方圖均衡化是影象處理領域中利用影象直方圖對對比度進行調整的方法。該方法通過灰度變換將一幅影象轉換為另一幅具有均衡直方圖,即在每個灰度級上都具有相同的象素點數的過程。
直方圖均衡化則通過使用累積函式對灰度值進行「調整」以實現對比度的增強。
處理結果如下:
可見,處理後影象的對比度有一定程度的增強,但同時直方圖均衡也存在著以下缺點:
1)變換後影象的灰度級減少,某些細節消失;
2)某些影象,如直方圖有高峰,經處理後對比度不自然的過分增強。
3.進一步把影象按照對源影象直方圖的觀察,各自指定不同源影象的直方圖,進行直方圖匹配,進行影象增強;
分析:直方圖匹配:是指使一幅影象的直方圖變成規定形狀的直方圖而進行的影象增強方法。
將影象直方圖以標準影象的直方圖為標準作變換,使兩影象的直方圖相同和近似,從而使兩幅影象具有類似的色調和反差。
均衡後的影象,灰度值減少,影象對比度明顯增強,但是導致很多地方的細節模糊,看不清楚;而且有些地方過分增強,嚴重干擾清晰度。
利用matlab工具箱實現影象直方圖匹配,就用imhist( )函式和histeq( )函式。
處理結果:
4.利用直方圖對影象elain和woman進行分割;
【分析】:利用直方圖對影象進行分割,我們可以採用閾值分割法。閾值分割的實質是利用影象的灰度直方圖資訊獲得用於分割的閾值。
它是用乙個或幾個閾值將影象的灰度級分為幾個部分,認為屬於同一部分的畫素是同乙個物體。該方法特別適用於目標和背景佔據不同灰度級範圍的影象。其灰度級直方圖呈明顯的雙峰值。
然後在峰谷處的灰度值就可以作為閾值來對影象進行分割。直方圖統計的是灰度值出現的頻數,那些在第乙個峰值附近的灰度值和第乙個峰值接近,在第二個峰值附近的灰度值和第二個峰值接近,所以以2個峰值的中間的峰谷對應的灰度值為閾值。大於閾值的點歸為一類,小於閾值的點歸為一類,這樣就把影象分割成2類。
以上是比較理想的情況 , 比如本實驗中的直方圖,就可以看成是雙峰型。因此,對於這幅影象,可以根據觀察直方圖來確定閾值。
但實際中很難找到這樣的影象。一幅通常有多個物體和背景所組成 ,假如,其灰度級直方圖能呈現出多個明顯的峰值,則仍可以選峰值間峰谷處的灰度值作為閾值,此時有多個閾值將影象進行分割,這樣就是多峰值閾值選擇。 比如有3個峰值,可以去兩個峰谷處的灰度值 t1,t2 作為閾值。
同樣,可以將閾值化後的影象變成二值影象 。
閾值分割的主要方法有:迭代法、最大類間方差法、動態閾值法、最大熵法等。本次實驗中,採用了閾值迭代法。
迭代的方法產生閾值,可以通過程式自動計算出比較合適的分割閾值。 其計算方法是這樣的:
1.選擇閾值 t,通常可以選擇影象的平均灰度值來作為初始值;
2.通過初始閾值 t,把影象的平均灰度值分成兩組r1 和 r2;
3.計算兩組平均灰度值 μ1 和 μ2;
4.重新選擇閾值 t,新的 t 的定義為:t=(μ1+μ2)/2;迴圈做第二步到第四步 , 一直到兩組的平均灰度值 μ1 和 μ2 不再發生改變, 那麼我們就獲得了所需要的閾值。
演算法描述:
1.取得原圖得資料區指標以及影象的高和寬;
2.進行直方圖統計;
3.設定初始閾值 t=127;
4.分別計算影象中小於 t 和大於 t的兩組平均灰度值;
5.迭代計算閾值,直至兩個閾值相等;
6.根據計算出的閾值,對影象進行二值化處理。
【處理結果】:
對於觀察其直方圖,並經過試探,發現當閾值為115時,分割效果較為理想。
對於採用迭代法進行取閾值。處理結果如下圖:
將分割結果與基於直接觀察直方圖法取閾值的結果進行對比,可知,迭代演算法的效果更好一些。
【附錄】
1、源**:
第一題畫源影象的直方圖
以為例:
i=imread('e:\大三下\影象處理英文課件\作業\第三次\源影象\','bmp');
figure;
subplot(2,2,1);
imhist(i);
title('的原直方圖');
畫處理後影象的直方圖
以及為例:
filename='e:\大三下\影象處理英文課件\作業\第三次\源影象\';
fmt='bmp';
[a,map]=imread(filename,fmt);
for i=168:1:256
j=1;
map(i,j)=0;
j=2;
map(i,j)=0;
j=3;
map(i,j)=0;
endg=ind2gray(a,map);
subplot(2,2,2);
imhist(g);
title('的直方圖');
[a,map]=imread(''e:\大三下\影象處理英文課件\作業\第三次\源影象\ ','bmp');
g=ind2gray(a,map);
subplot(2,2,3);
imhist(g);
title(' 的原直方圖');
第二題對源影象進行均衡處理
以為例:
i=imread('e:\大三下\影象處理英文課件\作業\第三次\源影象\','bmp');
j=histeq(i);
imhist(j);
title('經過直方圖均衡化的的直方圖');
imshow(j)
title('經過直方圖均衡化的');
i=imread(' e:\大三下\影象處理英文課件\作業\第三次\源影象\','bmp');
j=histeq(i);
figure;
subplot(3,2,1);
imshow(j)
title('均衡化的及其直方圖');
subplot(3,2,2);
imhist(j);
對處理後的影象進行均衡處理
以為例:
filename=' e:\大三下\影象處理英文課件\作業\第三次\源影象\';
fmt='bmp';
[a,map]=imread(filename,fmt);
for i=168:1:256
j=1;
map(i,j)=0;
j=2;
map(i,j)=0;
j=3;
map(i,j)=0;
endg=ind2gray(a,map);
j=histeq(g);
subplot(3,2,3);
imshow(j)
title('均衡化的及其直方圖');
subplot(3,2,4)
imhist(j);
filename=' e:\大三下\影象處理英文課件\作業\第三次\源影象\';
fmt='bmp';
[a,map]=imread(filename,fmt);
g=ind2gray(a,map);
j=histeq(g);
subplot(3,2,5);
imshow(j)
title('均衡化的及其直方圖');
subplot(3,2,6)
imhist(j);
第三題%%%%%%%%%以源影象為並經過直方圖匹配的為例
i=imread('e:\大三下\影象處理英文課件\作業\第三次\源影象\','bmp');
i=i(:);
hgram=imhist(i);
filename=' e:\大三下\影象處理英文課件\作業\第三次\源影象\';
fmt='bmp';
[a,map]=imread(filename,fmt);
for i=168:1:256
j=1;
map(i,j)=0;
j=2;
map(i,j)=0;
j=3;
map(i,j)=0;
endg=ind2gray(a,map);
b=histeq(g,hgram);
figure;
subplot(1,2,1);
imshow(b);
title('經過直方圖匹配的源影象為');
數字影象處理實驗報告影象增強實驗
實驗報告 課程名稱數字影象處理導論 專業班級 姓名學號 電氣與資訊學院 和諧勤奮求是創新 附錄 可能用到的函式和參考結果報告裡不能用參考結果中的影象 1 採用3 3的拉普拉斯運算元w 1,1,1 1 8 1 1,1,1 濾波 i imread moon.tif t double i subplot ...
數字影象處理直方圖均衡實驗報告
數字影象處理實 驗報告實驗名稱 直方圖均衡 一 實驗名稱 直方圖均衡 二 實驗目的 掌握直方圖均衡化的原理。掌握直方圖均衡化實現影象增強的實現方法。三 實驗原理 1 直方圖均衡化處理技術是用累積分布函式作變換函式的直方圖修正方法 2 用累積分布函式作為變換函式可產生一幅灰度級分布具有均勻概率密度的影...
數字影象處理實驗報告實驗一影象增強實驗
掌握影象增強的演算法。1.了解灰度變換增強和空域濾波增強的matlab實現方法 2.掌握直方圖灰度變換方法 3.掌握雜訊模擬和影象濾波函式的使用方法 2 影象的直方圖處理演算法。1 piii以上微機 2 matlab6.5 1 讀入影象 用matlab函式實現影象讀入 可讀入matlab中的標準測試...