问题描述
我正在尝试验证像素格式之间的某些图像转换质量。我有一个基本测试图像,正在将它从给定的像素格式(例如 Y444)转换为不同的像素格式(例如 Y42B)。然后我通过生成 PSNR 分数将新图像与测试图像进行比较。但也有人担心,由于像素格式的数组大小不同,生成的分数可能不准确。
我目前正在使用自定义编码的 PSNR 分数生成器,但我可能会切换到 OpenCV 的 PSNR 功能。这是分数生成的当前代码:
"""Computes the PSNR rating between 2 given images."""
mse = mean((original - converted) ** 2)
if (mse == 0): # MSE is zero means no noise is present.
# Therefore PSNR have no importance.
return 100
max_pixel = 255.0
psnr = 20 * log10(max_pixel / sqrt(mse))
return psnr
有谁知道这个分数是否真的准确?或者是否有我可以使用的库 oo 方法来提供更准确的度量,例如 OpenCV 的 PSNR 评分函数,或进行 SSIM 比较?
解决方法
两个图像的格式相同。您可以转换它们,然后应用 PSNR