关于ImageMagick compare命令NCC指标精度的技术问询
ImageMagick NCC指标输出精度确认
好问题!我之前也特意关注过ImageMagick里compare命令用NCC(归一化互相关)指标时的输出精度问题,结合实际测试和对它内部逻辑的了解,可以给你明确的答案:
- 默认输出精度是6位小数。你几次测试得到6位小数的结果完全符合ImageMagick的默认行为,它在输出这类浮点型指标时,默认会格式化显示6位小数,比如输出
0.987654或者0.112233这样的结果。 - 内部计算精度远高于输出精度。ImageMagick计算NCC时用的是双精度浮点数(64位),这类浮点数本身有大约15-17位的有效数字,也就是说计算过程中的精度是很高的,只是默认输出做了简化。
- 可以自定义输出精度。如果需要更精细的结果,你可以用
-format参数指定输出格式,比如想要10位小数的话,命令可以改成:
这里的compare -metric NCC "$image1" "$image2" -format "%.10f\n" null: 2>&1%.10f就是告诉程序输出10位小数的浮点结果。
内容的提问来源于stack exchange,提问作者rpspringuel
相关产品推荐
相关产品推荐

