图像质量的客观评价参数很多,计算方法多样,这里总结几个常用的测试及实现方法,以便大家测试开发时,参考使用。这里,都以单帧作为图像质量的测试输入。测试会使用到opencv及Python的一些库,如cv2, numpy as np,math等,这里不再详细说明。
1.如何处理图像得到SNR
在照片计算中,SNR的计算是使用图片的平均灰度作为Mean分子(信号)
分母为照片灰度的标准差(噪声)。SNR (dB) = 10 log10(S/N).
即先将图片RGB转化为GRAY,在灰度图情况下,作上述计算。
img_gray =cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
res =10*math.log10(np.mean(img_gray)/std_value)
备注:如果想得到PSNR,对于每个像素8bit的色彩深度,则直接将img_gray=255.
2.如何计算StepChart的阶数
方法一利用每一阶的Gray值,两两相减。(即Imatest的stepchart方法)
方法二利用信噪比SNR进行判断:SNR大于1,为第一个可分辨灰块;SNR持续增大,直到出现SNR首次衰减时,为最后一个可分辨块。算出可分辨比例。
3.Color Accuracy的数值获得
一是把RGB图片转化为L*a*b
DeltaC是a1,b1的平方和开方与a2,b2的平方和开方的差值,物理坐标上表示径向色差
DeltaE是L,a,b差值平方和开方
Deltaab是参照色和对比色a,b的坐标位置之差,物理上表示坐标平面上的颜色位置差异。