圖像間的超快速色彩傳遞(P2)
例子
抓住這個(gè)example.py文件和運(yùn)行示例,只需從GitHub項(xiàng)目頁面獲取代碼。
GitHub項(xiàng)目頁面:https://github.com/jrosebr1/color_transfer
你已經(jīng)在這篇文章的頂部看到了海灘的例子,但讓我們再看看:
執(zhí)行此腳本后,您應(yīng)該會(huì)看到以下結(jié)果:

請注意日落照片中的橙色和紅色是如何在白天轉(zhuǎn)移到海洋照片中的。
令人驚嘆的但讓我們嘗試一些不同的東西:

在這里你可以看到,在左邊我們有一張森林地區(qū)的照片——大部分是與植被有關(guān)的綠色,以及與樹皮有關(guān)的深棕色。
然后在中間我們有一個(gè)不祥的雷云-但讓它變得更加不祥!
如果你曾經(jīng)經(jīng)歷過嚴(yán)重的雷暴或龍卷風(fēng),你可能已經(jīng)注意到,在暴風(fēng)雨之前,天空變成了一片詭異的綠色陰影。
如右圖所示,我們通過將森林區(qū)域的顏色空間映射到云層,成功地模擬了這種不祥的綠色天空。
很酷吧?
還有一個(gè)例子:

在這里,我結(jié)合了兩件我最喜歡的東西:秋葉(左)和世紀(jì)中期的現(xiàn)代建筑,在這個(gè)例子中,弗蘭克·勞埃德·賴特的《瀑布》(中)。
瀑布的中間照片展示了一些令人驚嘆的世紀(jì)中期建筑,但如果我想給它一個(gè)“秋天”風(fēng)格的效果呢?
你猜對了——把秋天圖像的顏色空間轉(zhuǎn)移到瀑布上!正如你在右邊看到的,結(jié)果非常棒。
改進(jìn)算法的方法
雖然Reinhard等人的算法速度極快,但有一個(gè)特別的缺點(diǎn)——它依賴于全局顏色統(tǒng)計(jì),因此具有類似像素強(qiáng)度值的大區(qū)域會(huì)顯著影響平均值(以及整體顏色轉(zhuǎn)移)。
為了解決這個(gè)問題,我們可以考慮兩種解決方案:
選項(xiàng)1:在您想要模擬顏色的較小感興趣區(qū)域(ROI)中計(jì)算源圖像的平均值和標(biāo)準(zhǔn)偏差,而不是使用整個(gè)圖像。采用這種方法將使你的平均值和標(biāo)準(zhǔn)偏差更好地代表你想要使用的顏色空間。
選項(xiàng)2:第二種方法是對兩幅圖像應(yīng)用k均值??梢栽贚*a*b*顏色空間中對每個(gè)圖像的像素強(qiáng)度進(jìn)行聚類,然后使用歐幾里德距離確定兩個(gè)圖像之間最相似的質(zhì)心。然后,只計(jì)算這些區(qū)域內(nèi)的統(tǒng)計(jì)數(shù)據(jù)。同樣,這將使你的平均值和標(biāo)準(zhǔn)差產(chǎn)生更“局部”的影響,并有助于緩解全球統(tǒng)計(jì)數(shù)據(jù)的過度代表性問題。當(dāng)然,缺點(diǎn)是這種方法的速度要慢得多,因?yàn)槟F(xiàn)在添加了一個(gè)昂貴的集群步驟。