我想要替换图像的颜色。例如,将所有蓝色变为红色,形状没有任何变形。当我尝试这个时,我可以通过迭代每个像素来交换颜色,但是交换区域的形状变成扁平形状。
example1输入:http://www.tutorialwiz.com/tutorials/changing_color/images/original.jpg
example1输出:http://www.tutorialwiz.com/tutorials/changing_color/images/3.jpg
example2:输入输出:http://www.digital-photography-school.com/wp-content/uploads/2009/07/before-after.jpg
答案 0 :(得分:7)
通常的方法是使用RGBImageFilter。有关如何使用此类过滤器的信息,请参阅FilteredImageSource的文档。
答案 1 :(得分:1)
您要问的问题是严格的颜色替换会修改图像的形状。您需要做的是获得有关形状的一些信息。即沿边界查找边界和阴影。我给你的建议是:
IMO:这是您获得所需结果的唯一方式。
一些注意事项:找到斑点可能需要进行一些测试,以确定您对斑点和形状的容忍程度。 [连接区域]。
另一件事:阴影和相对着色将要求你对所需的颜色有所偏差。
答案 2 :(得分:0)
我不完全理解这个问题。 但是根据给出的例子,我看到将蓝色变为红色的过程失败了。它变成了灰色而不是变红。灰色是你的意思吗?
如果是这样,它看起来像颜色通道错误。
要将蓝色更改为红色,我们必须将(0,255,0)
更改为(255,0,0)
。
我不确定这是不是问题,也许代码片段可以帮助评估。确定什么是真正的问题。