PSNR算法

编程入门 行业动态 更新时间:2024-10-09 18:17:01

PSNR<a href=https://www.elefans.com/category/jswz/34/1770096.html style=算法"/>

PSNR算法

23.07.30 psnr算法公式介绍及python代码实现。

一、PSNR计算方案

PSNR计算通过两步完成:

        1. 首先计算均方误差,即mse。以灰度图像举例,均方误差即为两图像对应像素灰度之差平方,在根据图像的像素数量进行均值计算,公式如下:

        2. 后通过mse计算得出两图像之间psnr值。以灰度图像举例,PSNR为像素中最大值的平方除以均方误差后求其以10为底的对数,最后乘以十,化简后公式如下:

        其中,m,n 为图像尺寸,灰度图像时,可去掉c的部分。MAXpixel为图像中像素的最大值,如每个像素为8位二进制时,则为255。

二、python代码

以下为对于灰度图像进行PSNR计算代码,若为彩色图像,通常采取以下三种方案:

  1. 对RGB三个通道进行PSNR计算后进行平均。

  2. 对RGB三通道计算均方误差后除以3。

  3. 将图片转为YCbCr格式后只计算Y分量的PSNR。

import cv2 as cv
import numpy as np
import mathdef psnr(img1, img2):mse = np.mean((img1 / 1.0 - img2 / 1.0) ** 2)psnr = 20 * math.log10(255 / math.sqrt(mse))return psnrdef main():imag1 = cv.imread("./image/01_Lena.bmp")imag2 = cv.imread("./image/02_BABOO.bmp")res = psnr(imag1, imag2)print("res:", res)if __name__ == '__main__':main()

注:其中mse计算时需要将两图片数据除以1.0,否则结果有误。

更多推荐

PSNR算法

本文发布于:2024-03-04 13:23:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1709377.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:算法   PSNR

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!