【问题标题】:Trying to make color balance of photoshop using opencv尝试使用opencv使photoshop的色彩平衡
【发布时间】:2014-06-12 08:03:08
【问题描述】:

我想在Photoshop 中以编程方式制作相同的东西,如Color balance,如下图所示

如果我们在 Photoshop 中有相同的条形位置,那么我们如何在 OpenCV 中制作它们,因为我不明白的问题是我们有 RGB 格式的图像是的,我们可以转换为其他颜色格式,但是我如何可以理解这些值(如果 PS 中的 Cyan Level 为 -20,我们是否需要减去 OpenCV 中的 Cyan 值?或者我们需要添加?)并在 OpenCV 中进行相同的操作, 例如,如果我需要更改 CyanMagentaBlue 中的值,我是否需要先转换图像以添加青色和洋红色的值,然后将其转换回 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


【解决方案1】:

1,试试看 - 你所要做的就是改变符号,然后重新编译!

2,了解其他color representations - 你几乎不想直接在 RGB 中进行此类操作。

颜色非常复杂,一个很好的起点是color faq

【讨论】:

  • 你的意思是说将我的色彩空间转换为Cyan magenta and yellow,然后我需要像Cyan+20Magentta+30Yellow-25这样的东西?
  • 转换为 HSL/HSV 并更改色调,然后再转换回来。青色+20 并不是将 20 加到青色上,因此它只是色调向青色或品红色的任意变化。
  • 谢谢,但是如果我们在 PS 上检查颜色,然后在 opncv 中使用它们的值,它们不会给出相同的结果,这是由于使用了错误的方法或值不同?
  • 当我们分割图像时,我们有 3 个颜色分量,当我想改变青色洋红色和黄色的颜色时,我如何只能处理色调,假设我将色调改变为青色,那么如何我将相同的色调更改为洋红色,它可能会改变青色的值
猜你喜欢
  • 2015-05-23
  • 2014-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-23
  • 1970-01-01
相关资源
最近更新 更多