多页tiff的区别

Difference of multipage tiff

我必须计算两个图像的差异。目前我用 imagemagick 来做这个。以下代码适用于 jpg 或单页 tiff:

convert fileA.jpg fileB.jpg -compose -Difference -composite -colorspace gray -format '%[fx:mean]' info:

当我在第二页编辑多页 tiff 并使用上面的命令修改和未修改的 tiff 时,我得到了与比较 fileA 与自身相同的结果,所以我认为 imagemagick 将 fileA 的第 1 页与第 2 页进行比较。

其实我是把多页的图片拆分成单个图片文件,逐页比较,但是这样很慢!


Windows:

...>magick -version
Version: ImageMagick 7.0.8-11 Q16 x64 2018-08-29 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2018 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Visual C++: 180040629
Features: Cipher DPC Modules OpenMP
Delegates (built-in): bzlib cairo flif freetype gslib heic jng jp2 jpeg lcms lqr lzma openexr pangocairo png ps raw rsvg tiff webp xml zlib

Ubuntu 14.04

....# convert -version
Version: ImageMagick 6.7.7-10 2018-07-10 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP

如何快速获得两个比较的 tiff 的百分比差异?也许有一种方法可以使用 imagemagick 或 bash/java/...

您应该能够通过在 Imagemagick 中进行合成之前将每个 TIFF 图像的所有页面附加在一起来做到这一点。例如我制作的 4 页测试 tiff,其中第二页已经模糊:

convert \( test1.tif +adjoin -append \) \( test2.tif +adjoin -append \) -compose difference -composite -colorspace gray -format '%[fx:mean]\n' info:

0.00847632


您也可以使用 -layers composite 来做到这一点,并获得每个页面的差异。

convert test1.tif +adjoin null: test2.tif +adjoin -compose difference -layers composite -colorspace gray -format '%[fx:mean]\n' info:


0
0.0324311
0
0