快速色彩平衡算法分析
?。?)確定優(yōu)化數(shù)量和最大最小值
輸入優(yōu)化率s,則優(yōu)化數(shù)量為N×s,需要優(yōu)化的點(diǎn)是排序后的矩陣的前N×s/2和后N×s/2。因此,Vmin、Vmax分別產(chǎn)生在N×s/2和N×(1-s/2)-1的點(diǎn)。
?。?)優(yōu)化像素
將顏色值小于Vmin的全部改為Vmin,將顏色值大于Vmax的全部改為Vmax。
?。?)生成顏色值范圍為[min,max]的新圖像
假設(shè)新顏色值為f(x)=ax+b(x為舊顏色值),則有:
2.2 直方圖算法
N個(gè)像素顏色值排序的時(shí)間復(fù)雜度是O(Nlog(N))。還有一種更高效的方法,即以直方圖為基礎(chǔ)的改編版本,最壞情況下其時(shí)間復(fù)雜度也僅為O(N)。
算法流程如下:
(1)建立一個(gè)關(guān)于像素顏色值的直方圖
橫向i表示顏色值,縱向表示≤i的像素?cái)?shù)量q。
?。?)確定優(yōu)化數(shù)量和最大最小值
根據(jù)直方圖表示的意義,柱的高度>N×s/2的最小顏色值i,即為Vmin;同理,柱的高度≤N×(1-s/2)的最大顏色值i,即為Vmax。如果s=0,那么i的最小值即為Vmin,i的最大值即為Vmax。
(3)優(yōu)化像素
將顏色值小于Vmin的全部改為Vmin,將顏色值>Vmax的全部改為Vmax。
評論