摘 要:Reinhard色彩遷移算法,是計算機(jī)圖像領(lǐng)域中的一種特殊算法,輸入?yún)⒖紙D像與目標(biāo)圖像,經(jīng)過計算輸出結(jié)果。目標(biāo)圖像保持原有的圖像特征并附加了參考圖像的色彩特征。本文的研究圖像間的色彩遷移Reinhard算法,研究CUDA并行運(yùn)算在Reinhard算法上面的應(yīng)用。
關(guān)鍵詞:CUDA;Reinhard色彩遷移算法;研究
DOI:10.16640/j.cnki.37-1222/t.2016.08.133
1 色彩空間[1]
色彩空間的表達(dá)形式是多樣的,不同的種類的色彩空間是相同構(gòu)建的,因此不同的色彩空間之間可以經(jīng)過矩陣計算進(jìn)行轉(zhuǎn)換。
RGB色彩空間的坐標(biāo)中的三個軸線分別代表(R)紅、(G)綠、(B)藍(lán)三原色,坐標(biāo)軸的原點(diǎn)代表黑色,RGB空間可以看成一個立方體,與原點(diǎn)對應(yīng)的立方體的點(diǎn)代表白色,在RGB立方體空間中所有的點(diǎn)分別對應(yīng)不同的顏色,混合的各個分量具有一定的相關(guān)性。
lαβ空間,降低了RGB色彩通道之間的相關(guān)性,其中l(wèi)表示非彩色通道, α代表的黃-藍(lán)通道,β表示紅-綠通道。Lαβ空間可以很大程度的降低色彩通道的相關(guān)性,所以我們在進(jìn)行色彩遷移的時候可以利用lαβ空間進(jìn)行計算操作。
2 色彩空間的轉(zhuǎn)換公式[2]
將圖像從RGB空間轉(zhuǎn)換到lαβ空間。
經(jīng)過這三個步驟就完成了從RGB空間到lαβ空間的轉(zhuǎn)換。
3 色彩遷移算法—Reinhard算法說明[2]
Reinhard算法需要在lαβ色彩空間進(jìn)行計算,計算過程中匹配目標(biāo)圖像與參考圖像當(dāng)中各個顏色通道的統(tǒng)計信息--均值與標(biāo)準(zhǔn)差,根據(jù)計算結(jié)果改變目標(biāo)圖像的顏色分布并與參考圖像之間的顏色分布相匹配。
假設(shè)l、a、b分別是著色圖像lαβ通道原有的數(shù)據(jù),L、A、B分別是變換后得到新的源圖像lαβ通道的值,ml、ma、mb和ml、ma、mb分別是著色圖像和源圖像的三個顏色通道的均值,nl、na、nb和nl、na、nb表示它們的標(biāo)準(zhǔn)方差。公式如下:
將得到的目標(biāo)圖像的各個像素值由lαβ色彩空間轉(zhuǎn)換到RGB色彩空間,完成這個色彩遷移的過程。
4 Reinhard算法GPU并行計算研究
Reinhard算法需要在lαβ色彩空間進(jìn)行計算,計算過程中匹配目標(biāo)圖像與參考圖像當(dāng)中各個顏色通道的統(tǒng)計信息--均值與標(biāo)準(zhǔn)差,根據(jù)計算結(jié)果改變目標(biāo)圖像的顏色分布并與參考圖像之間的顏色分布相匹配。在該算法中需要計算機(jī)遍歷圖像中每個像素點(diǎn),計算出每個像素點(diǎn)的RGB的值,以及均值與標(biāo)準(zhǔn)差。如果只利用CPU進(jìn)行運(yùn)算,可能運(yùn)算速度會變得很慢,如果需要CPU和GPU同時進(jìn)行運(yùn)算,那么運(yùn)算時間會變得很快,
GPU高性能CUDA編程的時候涉及到多個線程以及線程塊,多個線程可以同時進(jìn)行,同時遍歷計算RGB的值,最后輸出結(jié)果,運(yùn)算的結(jié)果比單CPU的運(yùn)算效果快,這也就是圖形學(xué)并行計算的優(yōu)勢。
5 相關(guān)試驗結(jié)果
參考文獻(xiàn):
[1]胡國飛,傅健,彭群生.自適應(yīng)顏色遷移[J].計算機(jī)學(xué)報,2004,27(09):1245-1249.
[2]鐘高峰.色彩遷移算法研究[D]. 廣東工業(yè)大學(xué),2008.
作者簡介:邱曉樸(1991-),河北邯鄲人,研究方向:計算機(jī)應(yīng)用技術(shù)。