【问题标题】:How can I superimpose two pictures together in Java?如何在Java中将两张图片叠加在一起?
【发布时间】:2020-07-16 05:17:34
【问题描述】:

我正在尝试拍摄两张缓冲图像并将一张叠加在另一张上。

例如,我想以这张图片为基础:

那我想在上面叠加这张图片:

要得到这个:

这可能吗?

【问题讨论】:

  • 是的,这是可能的。你已经尝试过什么?
  • 我不确定,但您所说的“叠加”是什么意思,但我想将一个乘以另一个的倒数乘以强度(除...)可能会起作用。您可以使用任何图像处理库,例如 OpenImaj 或 OpenCV :)。
  • @akuzminykh 我正在处理噪音,所以我尝试将两个噪音函数加在一起,这显然效果不佳。我还查看了stackoverflow.com/questions/14241944/overlay-images-in-java,这并没有多大帮助,哈哈
  • @SamiTahri 这可以在没有外部库的情况下完成吗?
  • @FudgeMuffins “这显然行不通”是什么意思?您定义一个函数,该函数采用两个灰度像素并返回结果。为此,您不需要任何外部库。标准的 Java ImageIO 已经为您提供了所需的一切。

标签: java image colors bufferedimage image-manipulation


【解决方案1】:

对于 Java 中的图像处理,Im4java 可能是一个不错的选择,它是 ImageMagick 命令行的纯 java 接口。 This 可能与您正在寻找的类似。

【讨论】:

    【解决方案2】:

    您可以使用ImageIO 完成此操作。如果你想自己实现,那么你可以iterate the pixels两张图片,调用你喜欢的函数来计算输出像素和put it into the target image

    【讨论】:

      【解决方案3】:

      您可以在 Imagemagick 命令行中执行此操作。

      它只是第二张图像的反转,然后是两张图像的 50-50 混合。

      convert 1.png \( 2.png -negate \) -define compose:args=50 -compose blend -composite 1_2.png
      


      对于 Java,您可以使用 im4java 并找到等效的命令。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-12-11
        • 2013-03-05
        • 2010-10-13
        • 1970-01-01
        • 2012-06-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多