【问题标题】:Extract watermark from image从图像中提取水印
【发布时间】:2018-09-21 21:43:03
【问题描述】:

我有 1 张图片的 2 个版本

是否可以获得代表此水印的透明 png 文件? ImageMagick 可以做到这一点吗?

【问题讨论】:

    标签: image-processing watermark


    【解决方案1】:

    SilverMonkey 有使用 Imagemagick 的基本解决方案。但要求是透明的PNG。所以我会在他的代码中添加一点点,通过添加 -alpha 副本使其透明。

    convert kitty2.jpg kitty1.jpg -compose minus -composite -auto-level -alpha copy watermark1.png
    


    这是另一种通过阈值化为水印制作二进制掩码的方法。但它会留下很多噪音。所以我使用一些打开的形态来消除噪音,然后使用一些关闭的形态来尝试填充文本被分解的地方。然后我添加 -alpha 副本以使图像透明。但是文字是白色的,原始水印是浅灰色的。所以我关闭了 alpha,乘以 0.75 将白色字母的亮度降低为灰色,而不影响 alpha 通道。然后重新打开 Alpha 通道。

    convert kitty2.jpg kitty1.jpg -compose minus -composite -threshold 0.6% -morphology open diamond:1 -morphology close octagon:1 -alpha copy -alpha off -evaluate multiply 0.75 -alpha on watermark2.png
    


    有关形态学的更多信息,请参阅https://imagemagick.org/Usage/morphology/

    【讨论】:

    • 似乎比我的方法更复杂。
    【解决方案2】:

    您可以通过计算两幅图像之间的差异来实现您的目标(减去两幅图像的像素并计算绝对值)。这将导致: ImageMagick 似乎可以进行图像减法,look here: 代码:

    convert image2 image1 -compose minus -composite result
    

    【讨论】:

      猜你喜欢
      • 2022-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      • 2020-10-05
      相关资源
      最近更新 更多