我必须计算两个图像的差。目前,我使用imagemagick进行此操作。以下代码适用于jpg或单页tiff:
convert fileA.jpg fileB.jpg -compose -Difference -composite -colorspace gray -format '%[fx:mean]' info:
当我在第二页上编辑多页tiff并将上面的命令与经过修改和未修改的tiff一起使用时,我得到的结果与将fileA与自身进行比较一样,因此我认为imagemagick将文件A的第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 /...
答案 0 :(得分:1)
在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复合来做到这一点,并获得每一页的差异。
convert test1.tif +adjoin null: test2.tif +adjoin -compose difference -layers composite -colorspace gray -format '%[fx:mean]\n' info:
0
0.0324311
0
0