2014-04-26 31 views
0

作出的Photoshop的色彩平衡,我想做出同樣的事情編程就像Color balancePhotoshop,就像下圖嘗試使用OpenCV的

enter image description here

,如果我們在Photoshop那麼我們如何才能同吧的位置使他們在OpenCV中,因爲我不瞭解的問題是,我們有RGB格式的圖像是的,我們可以轉換爲其他顏色格式,但我如何理解這些值(我們是否需要減去OpenCV中的青色值,如果青色級別爲-20,PS?或者我們需要添加?),並在OpenCV中執行相同的操作, 對於前充足,如果我需要更改值Cyan,MagentaBlue我需要先轉換圖像以添加青色和洋紅色的值,然後將其轉換回BGR然後再增加blue? 而且沒有任何內置的功能OpenCV進行Shadows , MidTones and Highlight

我想這樣

Mat img = imread("E:\\raw_3.jpg"); 
vector<Mat> colors; 
split(img,colors); 
colors[0] += 69; 
colors[1] += 40 ; 
colors[2] -= 23 ; 
merge(colors,img); 
imshow("image" , img); 
imwrite("E:\\color_balance.jpg",img); 
waitKey(); 

青色的東西 - 紅= -23洋紅 - 綠色= 40黃色 - 藍色= 69,但我不能獲得準確的結果,因爲它應該是

+0

我不熟悉的Photoshop,但你可以通過使用函數映射通道的像素強度值做到這一點,IOUT(X, y)= f(Iin(x,y)),其中Iout(x,y)是(x,y)處像素的新強度。該函數可以是opencv中的簡單線性函數,分段函數,樣條曲線等,您可以使用查找表映射像素值。 – dhanushka

回答

2

1,試一試 - 你所要做的就是改變標誌,並重新編譯!

2,瞭解其他color representations - 您幾乎不想直接在RGB中進行這種操作。

顏色是極其複雜的,一個良好的開端是color faq

+0

你的意思是說,把我的色彩空間轉換成青色洋紅和黃色,然後我需要像青色+20',Magentta + 30'和'黃色-25'這樣的東西? – AHF

+0

轉換爲HSL/HSV並更改色調然後轉換回來。青色+20對青色不加20,因此它只是朝向青色或品紅色的任意色調變化量。 –

+0

謝謝,但是如果我們檢查PS上的顏色,然後在opncv中使用它們的值,他們不會給出相同的結果,這是由於使用錯誤的appraoch或值不同? – AHF