更改图像部分的颜色

时间:2012-03-07 18:16:54

标签: c# colors gdi+

我正在尝试找到一种解决方案,允许我更改图像部分的颜色。

例如,让我们说一张椅子的照片。 椅子可以具有不同的框架或垫子颜色。 我打算让用户选择一个框架或垫子并更新图像。 我们只能上传一张椅子图片。

非常感谢任何想法!

1 个答案:

答案 0 :(得分:1)

检测要修改的图像部分

以编程方式检测图像上的对象可能不是简单的事情;)。我想这个问题的一个很好的解决方案是由 Collin O'Dell 在他对这个问题的评论中提出的。他建议使用少量图像,手动分离要重新着色的图像部分。然后,您可以从几个不同的层组成最终图像。

但是,您还可以将主图像与所有对象保持在一起并手动制作一些其他图像,但仅保留 对象的蒙版 (即白色像素)对象所在的地方)。然后,您可以轻松检查哪些像素应该重新着色。这将允许您直接在一个图像上绘画并避免合成。

计算颜色

当您想要重新着色照片时,您可能希望能够保持阴影效果等,而不是覆盖所有相同的纯色。 为实现此目的,您可以使用 HSV 色彩空间代替 RGB 。要使用此方法,您应该:

  • 读取像素的颜色( RGB
  • 重新计算 HSV
  • 更改颜色的 Hue 值以获得所需的色调
  • 将修改后的颜色重新调整为 RGB
  • 设置像素的新颜色

有关 HSV 色彩空间的详细信息,请参阅此处:http://en.wikipedia.org/wiki/HSL_and_HSV