Java 是否有命令行工具可以直观地(逐像素)比较.tiff文件?
有没有办法用命令行工具逐像素比较.tiff文件 例如:Java 是否有命令行工具可以直观地(逐像素)比较.tiff文件?,java,command-line,compare,tiff,Java,Command Line,Compare,Tiff,有没有办法用命令行工具逐像素比较.tiff文件 例如: Channel distortion: MAE red: 2282.91 (0.034835) green: 1853.99 (0.0282901) blue: 2008.67 (0.0306503) all: 1536.39 (0.0234439) 输入:工具图像1.tiff图像2.tiff 输出:True(bool)(如果相同),False(bool)(如果发现差异) 也可能是Java代码/工具 提前谢
Channel distortion: MAE
red: 2282.91 (0.034835)
green: 1853.99 (0.0282901)
blue: 2008.67 (0.0306503)
all: 1536.39 (0.0234439)
输入:工具图像1.tiff图像2.tiff
输出:True(bool)(如果相同),False(bool)(如果发现差异)
也可能是Java代码/工具
提前谢谢你 您可以将ImageMagick用于。根据its,它也支持TIFF文件 用于比较图像的命令:
compare -verbose -metric mae pic1.tiff pic2.tiff difference.png
对于相同的图像,它将只打印零:
Channel distortion: MAE
red: 0 (0)
green: 0 (0)
blue: 0 (0)
alpha: 0 (0)
all: 0 (0)
对于不同的图像,它将打印非零值,例如:
Channel distortion: MAE
red: 2282.91 (0.034835)
green: 1853.99 (0.0282901)
blue: 2008.67 (0.0306503)
all: 1536.39 (0.0234439)
或者,如果图像大小不同,它会抱怨:
image widths or heights differ
您可以使用这些输出为自己生成真/假值。()如果你只想要一个正确/错误的响应,只需计算并比较md5或其他东西。目前还不清楚目的是比较文件(diff和md5sum等操作系统工具可能适用于这些文件),还是比较实际的图像数据。如果目的是比较图像数据,例如,如果不同文件中的颜色编码不同,会发生什么情况?我们是否需要检查图像数据是否相同(尽可能),或者是否在某个阈值内。FWIW I可以提供一些Java代码,将TIFF读入RGB像素值数组;但你仍然需要弄清楚如何进行实际的比较。