Java 如何替换图像的颜色?

Java 如何替换图像的颜色?,java,image-processing,computer-vision,image-manipulation,rgb,Java,Image Processing,Computer Vision,Image Manipulation,Rgb,我想替换图像的颜色。例如,将所有蓝色变为红色,形状不发生任何变形。当我尝试这样做时,我可以通过迭代每个像素来交换颜色,但是交换区域的形状变成了平面形状 示例1输入: 示例1输出: 示例2:同时输入输出:通常的方法是使用。有关如何使用这种过滤器的信息,请参阅文档。我不完全理解这个问题。 但从给出的例子中,我看到将蓝色变为红色的过程失败了。它不是变成红色,而是变成灰色。你所说的平坦就是灰色吗 如果是这样,看起来像是颜色通道错误。 要将蓝色更改为红色,我们必须将(0255,0)更改为(255,0,0)

我想替换图像的颜色。例如,将所有蓝色变为红色,形状不发生任何变形。当我尝试这样做时,我可以通过迭代每个像素来交换颜色,但是交换区域的形状变成了平面形状

示例1输入:
示例1输出:


示例2:同时输入输出:

通常的方法是使用。有关如何使用这种过滤器的信息,请参阅文档。

我不完全理解这个问题。 但从给出的例子中,我看到将蓝色变为红色的过程失败了。它不是变成红色,而是变成灰色。你所说的平坦就是灰色吗

如果是这样,看起来像是颜色通道错误。 要将蓝色更改为红色,我们必须将
(0255,0)
更改为
(255,0,0)


我不确定这是否是问题所在,也许代码片段可以帮助评估。要确定真正的问题是什么。

您要问的问题是,严格的颜色替换会修改图像的形状。你需要做的是得到一些关于形状的信息。即,查找边界并沿边界着色。我的建议是:

  • 使用边缘检测来分离斑点
  • 找到一个符合你需求的斑点:即对[颜色]有容忍的可能性
  • 识别应用的水滴和过滤器
  • 重新着色斑点并重新着色 IMO:这是你获得你想要的结果的唯一途径

    一些注意事项:查找斑点可能需要一些测试来确定斑点和形状的公差。[连接区域]


    另一件事:阴影和相对颜色将需要你有一个你想要的颜色偏差

    举一个输入和预期输出的例子会很有帮助。我只能猜测,问题的一部分在于,虽然根据颜色贴图更改颜色很容易,但决定贴图应该包含什么并不容易。坚持RGB,有很多颜色是观众可以选择的“红色”或“蓝色”。为问题添加了一些例子。嘿@monsky,很抱歉在这里打扰你,但是你的网站除了LinkedIn之外没有其他联系信息,我也没有向你发送邮件的高级访问权限。你有没有找到一个令人满意的解决方案:?谢谢:)