?
在圖像采集的過程中,由于不同光照下獲取的圖片顏色值差異較大,對圖片的顯示及圖片的分析產生困難。因此,在攝影和圖像處理中,不少學者提出了通過色彩平衡來解決這個難點。色彩平衡是一種通過全局調整圖像的RGB顏色信息使得圖片中出現色偏的顏色正常化的方法。WANG[4]提出了白平衡算法,即通過調整R、G、B三個分量的值使之達到平衡,然后按照這個調整比例對整幅圖像進行調整,達到色彩平衡的效果。LEE Hsien Che[5]提出的算法原理是在CCD或CMOS矩陣表示的原RGB顏色值下將其轉換為更加標準的感性顏色。
本文提出了一種新型的快速色彩平衡算法,首先取一個最大值Vmax和一個最小值Vmin,把小于Vmin的值全部改成Vmin,把大于Vmax的值全部改成Vmax。執行過程中,首先需要優化一些極端值,優化的極端值數量由輸入的優化率s決定;再根據s為整幅圖像分別確定一個合適的最大值Vmax和最小值Vmin,顏色值在[Vmin,Vmax]范圍外的像素即為極端像素,將極端像素的值改在[Vmin,Vmax]范圍內,最后再根據Vmin、Vmax和s按比例來提高非極端像素的顏色值。
1 新型色彩平衡算法
本文中算法的理論基礎是在RGB模式中顏色值越高越接近白色,顏色值越低越接近黑色。如果圖像是在黑暗中拍攝的,其像素最高的顏色值一定小于255,則通過擴大顏色值的范圍,圖像就會變亮。例如,閃電的主要顏色是R和G,那么通過色彩平衡就要增強B,這樣會減少一些微黃色色調,圖像會更亮一些,不但增加了畫面的和諧性,而且使圖像看起來更自然。
算法算法可以理解為有基本運算及規定的運算順序所構成的完整的解題步驟?;蛘呖闯砂凑找笤O計好的有限的確切的計算序列,并且這樣的步驟和序列可以解決一類問題。
綜上所述,本算法的目的是增加R、G、B三個顏色通道的顏色值,并使它們的范圍保持在[0,255]。最簡單的實現方式就是給每個通道ax+b的顏色值。其中,a、b是比例因子,需要通過計算得到,x是初始顏色值,ax+b必須在[0,255]的范圍內。
在實際圖像中經常會遇到顏色值為0或255的像素。實際需要優化的點或許很多,或許只有一個,不好確定確切的數目,所以必須用優化率來決定究竟要改變多少個點的值。假設一幅圖像上有N個像素點,優化率為s,則需要優化N×s個點,并使0
2 新型色彩平衡算法實現過程
本文介紹了排序和直方圖兩種改進的算法來實現色彩平衡的過程,下面闡述兩種算法的實現和實用性。
2.1 排序算法
算法流程如下:
(1)排序
排序是計算機內經常進行的一種操作,其目的是將一組“無序”的記錄序列調整為“有序”的記錄序列。分內部排序和外部排序。若整個排序過程不需要訪問外存便能完成,則稱此類排序問題為內部排序。反之,若參加排序的記錄數量很大,整個序列的排序過程不可能在內存中完成,則稱此類排序問題為外部排序。內部排序的過程是一個逐步擴大記錄的有序序列長度的過程。
將N個像素存入矩陣,并將它們按顏色值大小從低到高進行排序(排序之前要先將矩陣備份,因為以后還要用到)。
(2)確定優化數量和最大最小值
輸入優化率s,則優化數量為N×s,需要優化的點是排序后的矩陣的前N×s/2和后N×s/2。因此,Vmin、Vmax分別產生在N×s/2和N×(1-s/2)-1的點。
(3)優化像素
將顏色值小于Vmin的全部改為Vmin,將顏色值大于Vmax的全部改為Vmax。
(4)生成顏色值范圍為[min,max]的新圖像
假設新顏色值為f(x)=ax+b(x為舊顏色值),則有:
?
2.2 直方圖算法
N個像素顏色值排序的時間復雜度是O(Nlog(N))。還有一種更高效的方法,即以直方圖為基礎的改編版本,最壞情況下其時間復雜度也僅為O(N)。
算法流程如下:
(1)建立一個關于像素顏色值的直方圖
橫向i表示顏色值,縱向表示≤i的像素數量q。
(2)確定優化數量和最大最小值
根據直方圖表示的意義,柱的高度>N×s/2的最小顏色值i,即為Vmin;同理,柱的高度≤N×(1-s/2)的最大顏色值i,即為Vmax。如果s=0,那么i的最小值即為Vmin,i的最大值即為Vmax。
(3)優化像素
將顏色值小于Vmin的全部改為Vmin,將顏色值>Vmax的全部改為Vmax。
(4)生成顏色值范圍為[min,max]的新圖像
假設新顏色值為f(x)=ax+b(x為舊顏色值),則有:
?
對于16位像素值,直方圖算法是非常好的算法,只需要大約256 KB的內存,得到Vmin和Vmax的速度非???,其速度可與二分法媲美。
但對于32位像素值,直方圖算法大約需要耗費18 MB內存。這種情況下,最好采用排序算法。
3 實驗結果
將本文提出的算法用于改善曝光不足或采光條件不好或特殊光線下(如日落)生成的圖像的一種算法。該算法可以運用于大部分圖像,即使原圖是在正常光線下拍攝的也同樣適用。
圖1分別展現了原圖分別經優化率為0%、1%、2%和3%的色彩平衡算法優化后的結果。由圖可以看出,其圖像的優化率不同,優化結果也不同。
?
與基于CCD或CMOS矩陣轉換原RGB顏色為更加標準的感性顏色及白平衡算法等傳統的色彩平衡算法不同,本文提出的新型快速色彩平衡算法,通過獲取一個由優化率s決定的區間[Vmin,Vmax],然后將這個區間外的像素點改在[Vmin,Vmax]內,最后再根據Vmin、Vmax和s按比例來提高區間[Vmin,Vmax]內像素的顏色值。實驗結果表明,本算法能得到較好的效果,與其他算法相比更為簡明、快速。
評論
查看更多