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