【发布时间】:2014-06-12 08:03:08
【问题描述】:
我想在Photoshop 中以编程方式制作相同的东西,如Color balance,如下图所示
如果我们在 Photoshop 中有相同的条形位置,那么我们如何在 OpenCV 中制作它们,因为我不明白的问题是我们有 RGB 格式的图像是的,我们可以转换为其他颜色格式,但是我如何可以理解这些值(如果 PS 中的 Cyan Level 为 -20,我们是否需要减去 OpenCV 中的 Cyan 值?或者我们需要添加?)并在 OpenCV 中进行相同的操作,
例如,如果我需要更改 Cyan 、 Magenta 和 Blue 中的值,我是否需要先转换图像以添加青色和洋红色的值,然后将其转换回 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 但我没有得到应有的准确结果
【问题讨论】:
-
我不熟悉photoshop,但是你可以通过使用函数Iout(x,y) = f(Iin(x,y)) 映射通道的像素强度值来做到这一点,其中 Iout(x,y) 是 (x,y) 处像素的新强度。该函数可以是简单的线性函数、分段函数、样条函数等。在opencv中,您可以使用查找表映射像素值。
标签: image opencv image-processing colors computer-vision