给定一个大小为 的干净图像
和噪声图像
,均方偏差
定义为:html
而后 就定义为:python
其中 为图片可能的最大像素值。若是每一个像素都由 8 位二进制来表示,那么就为 255。一般,若是像素值由
位二进制来表示,那么
。api
通常地,针对 uint8 数据,最大像素值为 255,;针对浮点型数据,最大像素值为 1。函数
上面是针对灰度图像的计算方法,若是是彩色图像,一般有三种方法来计算。ui
其中,第二和第三种方法比较常见。spa
# im1 和 im2 都为灰度图像,uint8 类型
# method 1
diff = im1 - im2
mse = np.mean(np.square(diff))
psnr = 10 * np.log10(255 * 255 / mse)
# method 2
psnr = skimage.measure.compare_psnr(im1, im2, 255)
复制代码
compare_psnr(im_true, im_test, data_range=None) 函数原型可见此处code
针对超光谱图像,咱们须要针对不一样波段分别计算 PSNR,而后取平均值,这个指标称为 MPSNR。cdn
公式基于样本
和
之间的三个比较衡量:亮度 (luminance)、对比度 (contrast) 和结构 (structure)。htm
通常取 。图片
那么
将 设为 1,能够获得
每次计算的时候都从图片上取一个 的窗口,而后不断滑动窗口进行计算,最后取平均值做为全局的 SSIM。
# im1 和 im2 都为灰度图像,uint8 类型
ssim = skimage.measure.compare_ssim(im1, im2, data_range=255)
复制代码
针对超光谱图像,咱们须要针对不一样波段分别计算 SSIM,而后取平均值,这个指标称为 MSSIM。
获取更多精彩,请关注「seniusen」!