从图像中提取水印

时间:2018-09-21 21:43:04

标签: image-processing watermark

我有2个版本的1张图片

1 image without watermark the same image, with a alpha-blended watermark

是否可以获取表示此水印的透明png文件? ImageMagick可以做到吗?

2 个答案:

答案 0 :(得分:1)

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

convert image2 image1 -compose minus -composite result

答案 1 :(得分:1)

SilverMonkey具有使用Imagemagick的基本解决方案。但是要求是透明的PNG。因此,我将在他的代码中添加一些内容,以通过添加-alpha副本使其透明。

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

enter image description here


这是另一种通过阈值制作水印二进制掩码的方法。但这会留下很多噪音。因此,我使用一些开放的形态来消除噪声,然后使用一些封闭的形态来尝试填充文本分解的地方。然后,我添加-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


enter image description here

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