有没有一种方法可以获得类似于 ImageMagick 的 perceptualdiff 输出,而不是如下所示的类似 X 射线的深色图像?
感知差异输出
ImageMagick 输出
最佳答案
更新:
看来我一开始误读了OP的问题。他想要获得类似于 ImageMagick 的 compare
生成的输出,尽管是来自不同的工具 perceptualdiff
。我误以为他想要从 ImageMagick 获得类似 perceptualdiff
的输出!
在提出这个问题之前,我并不知道 perceptualdiff根本没有。
downloading it之后玩了一会儿,我看不到有任何选项来调整其输出“delta”图像,使其看起来像 ImageMagick 的 compare -compose src-结束
!
perceptualdiff 网站链接到一些论文,这些论文据称描述了它使用的算法及其优点。我没有时间阅读...
我将原样保留在下面,以方便 future 的读者。
由于OP的质量思想不关心提供任何输入图像来玩,让我们创建我们自己的......结果如下:
他们之间有区别吗?让我们看看...
1。 ImageMagick 提供的“标准”compare
命令
如果您在没有任何选项的情况下调用 compare
,ImageMagick 将隐式为合成应用 -compose src-over
设置:
compare \
/image/xLyrE.png \
/image/uHQjz.png \
delta1.png
此比较的结果,delta1.png
是左下方的图像。请注意以下事实:
delta1.png
已将“原始”图像(即命令行中提到的第一个图像)作为稍微苍白的背景图像添加到合成 delta 图像中。前景是第二个图像与原始图像不匹配的红色像素。
2。使用自定义 -highlight-color
调用 compare
看起来边框像素也不同。然而,我们的眼睛可能会被输入图像已经有红色边框的事实所欺骗。因此,让我们运行一个稍微修改过的命令:
compare \
/image/xLyrE.png \
/image/uHQjz.png \
-highlight-color green \
delta3.png
生成的图像如下右图所示。正如您所看到的,“差异”像素现在是绿色的。到目前为止,两个“delta”PNG 都表明了两个主要区别:
- 比较两个输入图像时,“Hello”世界在水平方向上略有位移
- 每张图像周围的红框颜色略有不同。
3。使用自定义 -lowlight-color
调用 compare
为了更接近OP所需的输出,我们可以添加-lowlight-color black
并将突出显示颜色更改为白色:
compare \
/image/xLyrE.png \
/image/uHQjz.png \
-highlight-color white \
-lowlight-color black \
delta2.png
结果如下左。看起来已经与OP想要的类似了,不是吗?
4。将 compare
与 -compose MinusSrc
结合使用
另一个类似的输出是通过修改隐式组合模式并将其替换为 -compose minussrc
产生的:
compare \
/image/xLyrE.png \
/image/uHQjz.png \
-compose minussrc \
delta-minussrc.png
结果如下,右侧。
5。测试比较
与其支持的所有合成模式
ImageMagick 内置了超过 5 种构图模式。以下命令列出了所有这些:
convert -list compose
You will see the following list:
Atop Blend Blur Bumpmap ChangeMask Clear ColorBurn ColorDodge Colorize CopyBlack CopyBlue CopyCyan CopyGreen Copy CopyMagenta CopyOpacity CopyRed CopyYellow Darken DarkenIntensity DivideDst DivideSrc Dst Difference Displace Dissolve Distort DstAtop DstIn DstOut DstOver Exclusion HardLight HardMix Hue In Lighten LightenIntensity LinearBurn LinearDodge LinearLight Luminize Mathematics MinusDst MinusSrc Modulate ModulusAdd ModulusSubtract Multiply None Out Overlay Over PegtopLight PinLight Plus Replace Saturate Screen SoftLight Src SrcAtop SrcIn SrcOut SrcOver VividLight Xor
If you are curious, you can test them out easily. The following command creates a delta PNG for each one:
convert -list compose \
| while read compositionmode ; do
compare \
/image/xLyrE.png \
/image/uHQjz.png \
-compose ${compositionmode} \
delta-${compositionmode}.png
done
(请注意,上面提供的输入文件不一定是演示各个合成模式的功能和优点的最佳文件。)
关于image-processing - 获取类似于 ImageMagick 输出的感知差异输出图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27537864/