【发布时间】:2018-09-21 21:43:03
【问题描述】:
【问题讨论】:
标签: image-processing watermark
【问题讨论】:
标签: image-processing watermark
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/
【讨论】:
您可以通过计算两幅图像之间的差异来实现您的目标(减去两幅图像的像素并计算绝对值)。这将导致: ImageMagick 似乎可以进行图像减法,look here: 代码:
convert image2 image1 -compose minus -composite result
【讨论】: