我从official site安装了用于Windows的imagemagick。我正在尝试使用ImageMagick从两个PNG图像生成差异图像。我正在使用以下命令:
compare file2.png file1.png -compose Src "diff.png"
但是命令以退出代码“ 1”退出。当使用-verbose标志运行时,将显示以下消息。
Image:file2.png通道失真:未定义
我搜索google的可能原因,但未找到任何答案。有关于失真的ImageMagick官方文档,但是该文档太宽泛且太技术化了(我是新手)。
您知道为什么imagemagick实用程序会抛出此消息吗?
答案 0 :(得分:1)
没有真正的错误。当您不将-metric XXX指定为compare并采用默认值时,将显示该消息。我相信,ImageMagick成功生成的退出代码为1。查看是否有一个名为diff.png的输出文件。例如,如果添加-metric rmse,则不应获得该消息。如果我在不使用-metric XXX的情况下运行以下命令,则会得到:
compare -verbose lena.png lena.jpg -compose src diff.png
lena.png PNG 256x256 256x256+0+0 8-bit sRGB 118327B 0.010u 0:00.004
lena.jpg JPEG 256x256 256x256+0+0 8-bit sRGB 31640B 0.000u 0:00.002
Image: lena.png
Channel distortion: Undefined
lena.png=>diff.png PNG 256x256 256x256+0+0 8-bit sRGB 3c 1322B 0.130u 0:00.039
所以工作正常。 该消息告诉您,它不知道使用哪个指标来提供差异统计信息。我不确定该使用什么度量来生成输出。失真一词可能是一个错误的选择,也许应该是差异统计。
如果我添加-metric rmse,则会得到:
compare -verbose -metric rmse lena.png lena.jpg -compose src diff.png
lena.png PNG 256x256 256x256+0+0 8-bit sRGB 118327B 0.010u 0:00.004
lena.jpg JPEG 256x256 256x256+0+0 8-bit sRGB 31640B 0.000u 0:00.001
Image: lena.png
Channel distortion: RMSE
red: 810.821 (0.0123723)
green: 658.701 (0.0100511)
blue: 945.653 (0.0144297)
all: 813.547 (0.0124139)
相似或相同的结果图像,但由于指定了特定指标,因此现在报告比较分数。
请参阅有关比较统计信息的部分here