我是图像处理的新手。最近,我正在使用CLAHE等对比度增强技术。但是我不知道如何评估对比图像的质量。在网上搜索时,我发现可以使用PSNR(峰值信噪比)和SSIM(结构相似度指数)之类的度量。但是我无法获得PSNR指标的实际作用。
维基百科的公式是:
PSNR = 20log(MAX)-10log(MSE)
其中log的底数是10,MAX是最大像素值(对于RGB图像),MSE是均方误差。
现在我的问题是,根据此定义,当MSE为零时,PSNR最大。这意味着要获得最大PSNR,MSE应该为零,并且只有在两个图像相同时才会发生。而使对比度增强图像与原始图像相同又有什么意义呢?
import math
def psnr1(img1, img2):
mse = np.mean( (img1 - img2) ** 2 )
if mse == 0:
return 100
PIXEL_MAX = 255.0
return 10 * math.log10((PIXEL_MAX)**2 /(mse))
这是我用来计算PSNR指标的代码。现在,当MSE为零时,这将返回最大PSNR,这只有在对比度增强的图像与以前相同时才可能。
有什么我想念的吗?谁能帮忙。预先感谢。