retinex整理(其中個人理解部分不保證準確,請多指教)

retinex模型基於人眼,將圖片中因霧靄等原因產生的模糊現象去除,提高圖像清晰度。這裏介紹最常見的一種retinex模型,採用高斯濾波。


人眼看事物時,周圍的光照強度和事物的反射光均會進入人眼 I(x,y)=R(x,y)*L(x,y),但真正決定人眼判定事物顏色的是事物的反射光R(x,y)。


拍攝出的照片顯示了R,L兩個分量,爲了讓圖像更清楚,就需要加強照片裏的R分量。於是retinex模型的根本就是提取圖像中的R分量。


首先考慮如何估算L分量,假設光照均勻,既圖像中的L分量在各處分佈均勻,所以L分量佔據圖像中的低頻成分,可以通過高斯濾波,以計算周圍鄰域內的加權平均值來提取其中的低頻成分,並把提取出的低頻成分當做L分量。

, sigma決定高斯濾波尺度,K保證G在x,y的二重積分爲1.


爲了降低運算複雜度,在提取R的時候用減法替代除法,首先對圖像求log,於是logR=logI-logL,而不用R=I/L



Single-Scale Retinex:將原始圖像分爲RGB三個通道,針對每個顏色,採用單一尺度的高斯濾波。高斯尺度越大,影響最後結果的像素範圍越大,色彩保真度越大,動態壓縮能力越小;尺度越小,結果受周圍像素的影響越大,細節越明顯,動態範圍壓縮能力越大。尺度大小各有利弊,爲充分發揮各尺度的優缺點,出現了Multi-Scale Retinex。


Multi-Scale Retinex: 一般採用尺度大小爲大,中,小(80~100)的三種高斯濾波處理每個顏色通道。根據不同顏色通道對整體顏色的影響,對每個顏色通道的結果加權重,儘可能保持顏色不失真。


 


動態範圍:最亮~最黑,灰度1~255,無論感光器件多高級,感知到的動態範圍多大,數字化後只有255.


高斯函數經過傅里葉變換仍未高斯函數,只是原sigma大的,變換之後變爲sigma小的。


圖像中的高頻成分爲圖像的邊緣輪廓等;低頻成分爲整幅圖像強度的綜合度量。


sigma大的高斯濾波,平均更多的像素點,頻域sigma小,濾掉更多成分,剩下很低頻率部分的被當做光照,從原圖像中剔除,剩下的便是最後輸出,也可以理解爲高斯濾掉的各種頻率組成了最後輸出的反射成分,所以色彩保真度更好,色彩保真了,自然明暗變化不明顯,既動態範圍壓縮能力差


反之,sigma小的高斯濾波,頻域sigma大,保留大量頻率較低成分,只濾掉少了頻率很高成分,這些成分可看做最後的輸出反射成分,因爲組成的頻率種類少,所以色彩較單一,動態範圍壓縮能力強。高頻率成分代表細節,缺少其他成分使得細節更明顯。


缺陷:1.顏色分佈集中於某一部分時,L分量估算錯誤。例如一塊區域內紅色通道均爲255,高斯濾波求平均值仍爲255,去除L分量,則剩餘反射分量爲0,顯然不合理。

            2.retinex模型基於L分量分佈均勻的假設,如果在某亮度有較大變化的邊緣處,光照變化不符合原有假設,則會出現過亮或過暗的光暈現象(halo artifact)。例如明暗相差很大的臨近區域,明亮側的 I爲50,L爲30;暗側的 I爲20,L爲10;實際的R分別爲20,10;如果按假定的均勻L(30+10)/2=20計算的話,R爲30,0。亮側更加亮,暗側更加暗,造成臨界處顏色的感官差異放大。

            3.RGB各分量增減幅度不一時會產生顏色失真扭曲。20,10,30--->10,40,20

            4.從原圖像基礎上去除了L分量,使得結果圖像產生褪色現象(graying-out)


改進:在之前傳統方法的基礎上進行改進。其中一種方法如下



EC是enhanced curve, 通過分析周邊的直方圖和edge分佈,決定使用哪種曲線,使得圖像可視性更好,輪廓更清晰



添加使用HSV色彩模型儘可能保證顏色的飽和度,鮮明度


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