Imagemagick 使用蒙版时可用的图像质量指标

问题描述

我有一个 RGBA 图像(下图),我想计算不同的质量指标,将原始图像与失真版本进行比较。这样做时,我想忽略背景的影响,只关注对象。首先,我从原始图像中提取 Alpha 通道以创建 Alpha 蒙版并创建一个没有 Alpha 通道的图像版本。

convert man1_orig.png -alpha extract man1_mask.png
convert man1_orig.png -alpha off man1.png

然后我创建一个扭曲的版本并将 alpha 掩码传递给 -read-maskcompare 标志并计算 PSNR 和 SSIM:

magick man1.png -quality 5% distorted.jpg
compare -metric PSNR -read-mask man1_mask.png man1.png distorted.jpg diff_mask.png
// 23.9876
compare -metric SSIM -read-mask man1_mask.png man1.png distorted.jpg diff_mask.png
// 0.192216

然而,当我使用完整图像(无 alpha)重复相同的实验时,我得到了不同的 PSNR 结果,正如预期的那样,但 SSIM 产生相同的结果:

compare -metric PSNR man1.png distorted.jpg diff_full.png
// 27.7426
compare -metric SSIM man1.png distorted.jpg diff_full.png
// 0.192216

对于完整图像,我认为 PSNR 更高,因为未失真和失真图像中的背景像素非常相似,并且对结果有积极的贡献。对于 SSIM,我怀疑 -read-mask 没有效果。是否没有为 SSIM 实现此功能,或者在图像的屏蔽区域上测量 SSIM 可能没有任何意义?

An RGBA image

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)