使用 ImageMagick 比较图像,只得到结果 true/false 0/1
compare an image using ImageMagick and only get result true/false 0/1
我们使用 git
存储库作为屏幕截图,并且图像始终被标记为 git
已更改,但应用模糊测试后,没有任何更改。
我用这个脚本比较图片
do_compare()
{
compare $color_flag $fuzz_flag $backgroundcolor_flag "$f1" "$f2" png:- | \
montage -geometry +4+4 $backgroundcolor_flag "$f1" - "$f2" png:- >"$destfile" 2>/dev/null || true
}
但我只想知道图像是否有变化,关于 fuzz。
有人知道怎么做吗?
您可以在 Unix 上的命令行 ImageMagick 中使用
compare -metric ae -fuzz XX% image1 image2 null: 2>&1
-metric ae
将 return 不匹配的像素数。因此,如果结果为 0,则它在指定的 -fuzz 值内完全匹配。
例如,使用 fuzz = 0 进行测试:
XX=0
test=`compare -metric ae -fuzz $XX% lena.png lena.jpg null: 2>&1`
if [ "$test" = "0" ]; then
echo "match"
else
echo "no match"
fi
no match
使用 fuzz = 10% 进行测试:
XX=10
test=`compare -metric ae -fuzz $XX% lena.png lena.jpg null: 2>&1`
if [ "$test" = "0" ]; then
echo "match"
else
echo "no match"
fi
match
我们使用 git
存储库作为屏幕截图,并且图像始终被标记为 git
已更改,但应用模糊测试后,没有任何更改。
我用这个脚本比较图片
do_compare()
{
compare $color_flag $fuzz_flag $backgroundcolor_flag "$f1" "$f2" png:- | \
montage -geometry +4+4 $backgroundcolor_flag "$f1" - "$f2" png:- >"$destfile" 2>/dev/null || true
}
但我只想知道图像是否有变化,关于 fuzz。
有人知道怎么做吗?
您可以在 Unix 上的命令行 ImageMagick 中使用
compare -metric ae -fuzz XX% image1 image2 null: 2>&1
-metric ae
将 return 不匹配的像素数。因此,如果结果为 0,则它在指定的 -fuzz 值内完全匹配。
例如,使用 fuzz = 0 进行测试:
XX=0
test=`compare -metric ae -fuzz $XX% lena.png lena.jpg null: 2>&1`
if [ "$test" = "0" ]; then
echo "match"
else
echo "no match"
fi
no match
使用 fuzz = 10% 进行测试:
XX=10
test=`compare -metric ae -fuzz $XX% lena.png lena.jpg null: 2>&1`
if [ "$test" = "0" ]; then
echo "match"
else
echo "no match"
fi
match