我怎样才能得到两个图像之间的区别?我有最初的形象。有人在原图的正本上写字。现在,我需要比较原始和文字上的图像,并只提取文字的图像格式。
我有一张房子的照片。有人抄了一本,写着“你好!”在复印件上。我想以某种方式比较这两张照片,移出房子,留下一个“你好!”的图片。
这与ImageMagick是可能的吗?我知道有一些方法可以得到图像之间的统计差异,但这不是我想要的。
发布于 2012-07-06 12:24:18
我自己最喜欢的两个是:
compare image1 image2 -compose src diff.png
compare image1 image2 -compose src diff.pdf
上面两个命令的唯一区别是:第一个命令将两个图像之间的视觉差异显示为一个PNG文件,第二个命令显示为一个PDF文件。
生成的diff文件显示所有不同的红色像素。那些没有变化的看起来是白色的。
又短又甜。
注意,您的图像需要而不是是相同的类型。你甚至可以混合JPEG,TIFF,PNG --在一个条件下:图像应该是相同大小的(图像尺寸以像素为单位)。输出格式由输出文件名的扩展名决定。
如果您出于某种原因需要比默认分辨率(72 dpi)更高的分辨率,那么只需添加一个适当的-density
参数:
compare -density 300 image1 image2 -compose src diff.jpeg
举例说明
以下是上述命令变体结果的几个示例。注意:比较的两个文件甚至是 PDF文件,所以它也适用于这些文件(只要它们是1-寻呼机)!
左:图像与文本相对应,中心:原始图像,再匹配,右:差异(=文本),以红色像素表示。
compare \
porsche-with-scratch.pdf porsche-original.pdf \
-compose src \
diff-compose-default.pdf
这是我前面建议的相同的命令。
左:图像与文本相对应,中心:原始图像,重新编码,右:差异,在'seagreen‘像素。
compare \
porsche-with-scratch.pdf porsche-original.pdf \
-compose src \
-highlight-color seagreen \
diff-compose-default.pdf
此命令添加一个参数,以使不同的像素'seagreen‘而不是默认的红色。
左:图像与文本相对应,中心:原始图像,更高级,,右:蓝色差异(但是w.一些上下文背景)
我
compare \
porsche-with-scratch.pdf porsche-original.pdf \
-highlight-color blue \
diff-compose-default.pdf
此命令移除-compose src
部分--结果是compare
的默认行为,它将2幅不同图像中的第一幅保留为轻松的背景。(这一次添加了参数,使diff像素以蓝色显示。)
发布于 2015-11-12 14:12:19
虽然compare
在许多应用程序中做得很好,但我发现有时我更喜欢一种不同的方法,特别是当比较图像时,这些图像大多是灰度的:
convert '(' file1.png -flatten -grayscale Rec709Luminance ')' \
'(' file2.png -flatten -grayscale Rec709Luminance ')' \
'(' -clone 0-1 -compose darken -composite ')' \
-channel RGB -combine diff.png
其思想如下:将file1.png
和file2.png
转换为灰度。然后将第一个通道作为结果图像的红色通道,第二个通道作为绿色通道。蓝色通道是由这两个使用darken
组合运算符形成的,这实际上意味着取最小值。
所以这两幅图像中白色的东西都是白色的。在这两个图像中都是黑色的东西仍然是黑色的。第一幅图是白色的,第二张是黑色的,第二张是白色的,第一张是黑色的。
结果给出了一个很好的彩色编码图像,您可以很容易地将绿色与第一个输入和红色与第二个相关联。下面是一个示例,我使用它来比较来自LaTeX的输出和来自KaTeX的输出(在我修正了一些错误使其更好之前):
您可以组合这些方法,使用compare
查看更改的位置,然后使用上面的方法更详细地查看它是如何变化的。
发布于 2022-09-21 14:49:56
在ImageMagick 6.3.4中,您可以使用-compose ChangeMask
(也请参阅“删除已知背景”和下面的章节)。例如,使用IM7和这些图像( stone.png
、diamond_ore.png
和netherrack.png
)
magick diamond_ore.png stone.png -fuzz 15% -compose ChangeMask -composite diamond_ore_overlay.png
给出:
magick netherrack.png \( diamond_ore.png stone.png -fuzz 15% -compose ChangeMask -composite +compose \) -composite nether_diamond_ore.png
给出:
https://stackoverflow.com/questions/5132749
复制相似问题