3 回答
TA贡献1844条经验 获得超8个赞
我自己的最爱是以下两个:
compare image1 image2 -compose src diff.png
compare image1 image2 -compose src diff.pdf
上面两个命令之间的唯一区别:第一个命令将两个图像之间的视觉差异显示为PNG文件,第二个命令以PDF显示。
生成的差异文件显示红色不同的所有像素。不变的显示为白色。
简短而甜美。
请注意,你的图像需要不属于同一类型。您甚至可以在一种情况下混合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”,而不是默认的红色。
左:带有文本的 图像中心:原始图像 右:蓝色差异(但带有某些上下文背景) 仅蓝色差异像素; 比较图像中的第一个作为增亮背景l
compare \
porsche-with-scratch.pdf porsche-original.pdf \
-highlight-color blue \
diff-compose-default.pdf
此命令删除该-compose src部分-结果是默认行为,compare该行为的默认行为是将2个衍射图像中的第一个图像保留为浅色背景。(这次添加了参数,以使差异像素显示为蓝色。)
TA贡献1886条经验 获得超2个赞
虽然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为灰度。然后将第一个作为生成图像的红色通道,将第二个作为绿色通道。蓝色通道是使用darkencompose运算符从这两个通道形成的,这实际上意味着需要占用最少的空间。
因此,两个图像中都是白色的东西保持白色。在两个图像中都是黑色的东西保持黑色。在第一个图像中为白色但在第二个图像中为黑色的事物变为红色,在第二个图像中为白色但在第一图像中为黑色的事物变为绿色。
结果为您提供了很好的颜色编码图像,您可以轻松地将绿色与第一个输入关联,将红色与第二个输入关联。这是一个示例,我在此示例中将LaTeX的输出与KaTeX的输出进行比较(在我修复一些错误以使其变得更好之前):
您可以结合的方法,用compare看哪里的东西改变了,然后用上面更详细地看怎么它改变。
TA贡献1859条经验 获得超6个赞
我最初是使用Gimp自己进行这些图像比较的,但是我是直接在输入图像上使用“纹理提取”图层模式进行的,因此公共区域最终将变成灰色,而差异将在一个方向上变成黑色,而在另一个方向上变成白色。 。较难阅读,但生成速度更快,并且可以包含颜色信息。我想如果您使用“仅暗”而不是“屏幕”,并且将未使用的通道上的颜色改为白色而不是黑色,则您将更加匹配我的命令。
添加回答
举报