2012-03-07 113 views
3

我试图找到一种解决方案,可以让我更改图像部分的颜色。更改图像部分的颜色

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

任何想法非常感谢!图像的

+1

也许你可以从单独的PNG文件构建图像?你会有一个框架,一个用于坐垫,另一个用于背景。您将重新对框架和缓冲垫进行相应的着色,然后将它们分层为单个图像。 – 2012-03-07 19:12:46

+0

我想没有其他的方法,然后有两个单独的图像框架和坐垫。否则在某些情况下尝试彩色框架可能导致缓冲颜色改变或副版本。我会尽量根据你的想法做编码。感谢科林和卢卡斯两位! – user1255409 2012-03-07 21:42:50

+0

确定的事情:)我希望我能给你一些工作代码,但我从来没有在C#中处理过图像处理。 – 2012-03-08 02:42:20

回答

1

检测部分进行修改

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

但是,您也可以保持主图像的所有对象,并手动进行一些额外的图像,但只有保持口罩的对象的(即白色像素在地方的对象)。然后,您可以轻松检查哪些像素应该重新着色。这将允许您直接在一幅图像上绘制并避免合成。

计算颜色

当你想重新着色的照片,你可能希望能够保持阴影效果等,而不是涵盖所有使用相同的纯色。 为了达到这个目的,你可以使用HSV色彩空间,而不是RGB。要使用这个方法,你应该:

  • 读取像素的颜色(RGB
  • 重新计算它HSV
  • 颜色的变化色调值来获得所需的色调
  • 重新修改颜色返回到RGB
  • 设置像素

的新颜色更多有关HSV色彩空间,你可以看看这里:http://en.wikipedia.org/wiki/HSL_and_HSV