數字圖像處理與機器視覺-2-圖像灰度變換(1)


上一篇文章忘記介紹灰度直方圖了,灰度直方圖就是將RGB圖像轉成灰度圖後,統計灰度圖中各灰度級出現的次數或頻率,可用於圖像分割和圖像灰度變換;

常見的灰度變換上一篇介紹過線性變換,即O = Fa * I + Fb;

繼續學習圖像灰度變換之:灰度對數變換

t = c log(s + 1)


這種變換可以增強一幅圖中較暗部分的細節,從而可以用來擴展被壓縮的告知圖像中的較暗像素。一般傅里葉頻譜動態範圍可寬達0~1000000,直接顯示,圖像設備的動態範圍不能滿足要求,從而丟失大量暗部細節,在使用對數變換之後 ,被合理地非線性壓縮,可以清晰顯示。

由曲線可以看出,橫軸值較小時,縱軸值變化很大;橫軸值較小時,縱軸值變化趨於平緩;所以暗部的細節區分度變大,可以保留暗部細節。

最終MATLAB實驗結果結果如下圖所示


建議瞭解下傅里葉變換,在高等數學中有專門講到傅里葉變換,用於信號處理等方面;傅里葉變換在圖像處理中的應用,這篇博文將大概應用類型介紹了一下,我是參照它來學習的,還附有MATLAB代碼,實踐起來比較方便:




伽馬變換

伽馬變換,也叫指數變換或者冪次變換;
表達式一般爲y = (x +esp)^γ;

x,y的取值範圍爲[0,1],說esp是補償係數,但是感覺esp應該是不大於1的,因爲esp如果大於1的話,當x爲1時,x + esp 的25次方肯定大於1了。具體多少應該有其他規定;

不過在網上有一部分介紹是把esp補償係數省掉了;

下圖爲伽馬變換的曲線圖:



MATLAB裏面有對應gamma變換的處理函數,imadjust,用法爲:

J = imadjust(I,[low_in high_in],[low_out,high_out],gamma);

比較好懂,將輸入圖像在low_in到high_in的值映射到lou_out到high_out區間上,所以自然就將[low_in high_in]區間外的值過濾掉了。

gamma指定了映射關係上的權重,gamma < 1的話映射被加權至更高的輸出值;反之,加權至更低的輸出值;具體效果如“伽馬變換的曲線圖”所示。

MATLAB效果圖如下:



代碼:
I = imread('test1_gray.png');
subplot(1,3,3);
J = imadjust(I,[],[],1.5);
imshow(J);
title('gamma 1.5');

順便了解下圖像處理屆的女神+標準測試照片lena,標準文件點此下載,處理效果感覺還不如我天朝美女:


根據前面伽馬變換的曲線圖,不同的gamma,其曲線在不同區間曲率變化規律不同,gamma < 1時,較暗區域的細節會更加明顯,gamma > 1時,較亮區域的細節會更加明顯。

同時還比較了直方圖:



書上總結說是:伽馬變換不是線性變換,不僅可以改變圖像的對比度,還能夠增強細節,改善整體效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章