图像暗角阴影去除算法
暗角的概念
暗角一詞屬于攝影術語,是指一幅圖像的四周的亮度或飽和度相比于中間部分的降低,畫面四角有變暗的現象。暗角對于任何相機設置或鏡頭都不可避免。當然有時會故意引入暗角這種效果。
產生暗角的原因
(1)邊角的成像光線與鏡頭光軸有較大的夾角是主要原因。沿著視場邊緣的光線的前進方向看光圈,由于光線與光圈所在的平面有夾角,看到的光圈是橢圓的,所以通光面積減小。鏡頭光心到膠片的邊緣距離較大,同樣的光圈直徑到達底片的光線夾角較小,亮度必然減小。同理,同樣的光線偏角,對于邊角光線位移較大,等價于照在較大的面積上。而面積是與位移的平方成正比的,所以綜合上述原因,邊緣亮度與光線和光軸夾角的cos值的4次方成正比。換句話說,廣角鏡頭的邊緣亮度隨著視角變大急劇下降。
(2)長焦鏡頭,尤其是變焦長焦鏡頭,鏡片很多,偏離光圈比較遠的鏡片為了能讓邊角光線通過,這些鏡片必須很大。為了降低成本,縮小了這些鏡片直徑,造成邊角成像光線不能完全通過,降低了邊角的亮度。
(3)邊角的像差較大。為了提高像質,某些鏡片的邊緣或專門設置的光闌有意擋住部分影響成像質量的邊緣光線,造成邊角失光。
暗角的分類
(1)自然暗角:表現為照片四角平緩暗化的漸變效果,這主要是由不同位置的光照進相機傳感器的角度不同造成的。這種類型的照片暗角在用廣角鏡頭拍攝的時候最為明顯。:
(2)光學暗角:漸變同樣也很平緩,但是它形成的主要原因是由鏡頭的固有特性,或者由鏡筒自身的陰影造成。光學暗角也最終決定了一個鏡頭的成像圈的尺寸。這種暗角多在使用大光圈的情況下出現,并且受特定的鏡頭設計的影響很大。
(3)機械暗角:通常非常突兀,且只存在于照片的四角,通常是由遮光斗、濾鏡環或其他安置在鏡頭前的遮光器材造成的。這種暗角如果由大光圈鏡頭或者變焦鏡頭來拍的話漸變效果就會略微平緩一些,沒有那么突兀,也可以使用長焦從而避免這種效果。
po幾張帶暗角效果的原始圖像:
去暗角算法
去陰影的算法有多種,例如參考【7,8】里的方法,本文主要討論基于熵的去暗角算法,在論文《Retrospective shading correction based on entropy minimization》【1】中介紹了基于熵最小化的陰影校正(暗角自然也是一種陰影形式)方法,另外論文【2】《Single-Image Vignetting Correction by Constrained Minimization of log-Intensity Entropy》進一步討論了論文【1】中方法的局限,主要是指局部最優的問題,并提出了一種基于對數熵的方法,這里大概講述一下論文【2】中方法的思路,另見參考[4]。其主要內容有三部分:一是關于對數熵的評價準則;二是陰影去除方法的建模;三是模型參數的優化,使得熵值最小。
(1)對數熵
關于熵的概念,有點抽象,在維基里有很詳細的解釋,請參見:https://en.wikipedia.org/wiki/Entropy,這里只po一下連續隨機變量的信息熵公式:
,
其中,X為圖像灰度的分布,f(x)為概率密度函數,當X乘以一個參數c時,熵變為:
當c>1時,ln|c|>0.
(2)暗角建模
首先將灰度進行對數映射:
即將[0,255]的像素值基于對數關系映射到[0, N-1]內,通常N取256,這樣映射后的像素范圍還是[0,255]。映射后的直方圖為:
,
那兩個數學符號了,是向上取整和向下取整的意思,作和是一種線性權重取值方式。此時的對數熵直方圖由于巨大的色階調整,會出現直方圖信息缺失,需要進行高斯平滑得到新的直方圖。經過高斯平滑后的離散熵為:
,
論文給出的陰影函數反函數,也稱增益函數g 為:
, g的范圍為:1<g<1
其中,(x,y)是圖像點坐標,x,y均值表示圖像的中心位置。可以看到,當r=0時,校正系數=1,即無需校正。當r=1時,校正系數為1+a+b+c。經過暗角校正后的圖像就為:
圖像從暗角的中心點到四周是逐漸變暗的,函數g是隨著r單調遞增的,因此函數g的一階導數大于0,即:
,由r>0,可以得到:
,令q2=r,那么轉換為:
,方程解為:
,根據g在所屬范圍內的單調遞增特性,推出C1~C5,并保證了r=0和1時,g>0,并且在范圍0~1內,g不等于0;
(3)參數最優化
在第二部分,建立暗角模型后,問題便轉化為一個最優化問題,最優條件是調參使得對數熵最小。文中介紹的求最優方法是爬山法:即從一個隨機的初始解開始,逐步找到一個最優解。 因為模型中有多個參數,通過爬山法逐步獲得最優解的過程中可以依次分別將某個參數的值增加或者減少一個單位。
算法實現:(待完成)
參考:
總結
以上是生活随笔為你收集整理的图像暗角阴影去除算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【阿里技术】2019年开发者必读!20位
- 下一篇: 【GIMP】免费开源图像处理软件