图像增强的两个评价指标:峰值信噪比PSNR和结构相似度SSIM

这篇具有很好参考价值的文章主要介绍了图像增强的两个评价指标:峰值信噪比PSNR和结构相似度SSIM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


图像增强的评价指标在像素层面上通常包含平均绝对误差(MAE)、均方误差法(MSE)、峰值信噪比(PSNR)以及结构相似度(SSIM)。目前在图像增强领域比较权威的客观评价标准为峰值信噪比(PSNR)和结构相似度(SSIM)。
注:这两个指标都需要由标准图做参考(不是原图),也就是全参考指标

峰值信噪比PSNR

PSNR(Peak Signal to Noise Ratio)表示为峰值信号能量与噪声平均能量之比,一般取10lg以dB(分贝)为单位。噪声的平均能量又可以表示为真实图像与含噪图像的均方误差MSE(Mean Squared Error)。PSNR的计算方法如式所示, MAXI为信号能量峰值,bits为单通道像素值位深度,M、N为图像宽高, x(i,j)和x~(i,j) 分别表示增强后的图像与原图在像素点 (i,j)处的像素值。
图像增强的评价指标,计算机视觉,人工智能,机器学习

结构相似度SSIM

自然图像具有极高的结构性,表现为图像的像素间存在着很强的相关性,尤其是在空间相似的情况下。这些相关性在视觉场景中携带着关于物体结构的重要信息,通过分析结构信息是否改变可以判断图像的失真情况。大多数基于误差敏感度的图像质量评估指标,如MSE、PSNR,使用线性变换来分解图像信号,不涉及两图像之间的相关性,SSIM(Structural Similarity)给出了更直接的方法来比较失真图像和参考图像之间的结构差异,是一种衡量两幅图像相似度的指标,它从图像组合的角度将图像的结构信息定义为独立于亮度和对比度、反映场景中物体结构的属性,并将失真建模为亮度、对比度和结构三个不同因素的组合,从亮度相似性、对比度相似性和结构相似性三个方面综合评价图像质量,用均值作为亮度的估计、标准差作为对比度的估计、协方差作为结构相似程度的度量。
给定两幅图像 和 ,它们的结构相似度可以由式xx给出,其中,μ和 σ分别表示图像的均值和方差,σxy 表示图像x和图像y之间的协方差,C1和C2为常数,一般可取0。
图像增强的评价指标,计算机视觉,人工智能,机器学习

SSIM取值为【-1,1】,当两幅图像完全相同时,SSIM取值为1。在实际应用中,一般采用高斯函数计算图像的均值、方差和协方差。由于图像的统计特征通常在空间中分布不均匀,通常对图像局部求取SSIM,再进行平均池化得到整幅图像的SSIM。

python实现

网上找的。

SSIM的代码

#相关操作
#由于使用的高斯函数圆对称,因此相关操作和卷积操作结果相同
def correlation(img,kernal):
    kernal_heigh = kernal.shape[0]
    kernal_width = kernal.shape[1]
    cor_heigh = img.shape[0] - kernal_heigh + 1
    cor_width = img.shape[1] - kernal_width + 1
    result = np.zeros((cor_heigh, cor_width), dtype=np.float64)
    for i in range(cor_heigh):
        for j in range(cor_width):
            result[i][j] = (img[i:i + kernal_heigh, j:j + kernal_width] * kernal).sum()
    return result

#产生二维高斯核函数
#这个函数参考自:https://blog.csdn.net/qq_16013649/article/details/78784791
def gaussian_2d_kernel(kernel_size=11, sigma=1.5):
    kernel = np.zeros([kernel_size, kernel_size])
    center = kernel_size // 2

    if sigma == 0:
        sigma = ((kernel_size - 1) * 0.5 - 1) * 0.3 + 0.8

    s = 2 * (sigma ** 2)
    sum_val = 0
    for i in range(0, kernel_size):
        for j in range(0, kernel_size):
            x = i - center
            y = j - center
            kernel[i, j] = np.exp(-(x ** 2 + y ** 2) / s)
            sum_val += kernel[i, j]
    sum_val = 1 / sum_val
    return kernel * sum_val


#ssim模型
def ssim(distorted_image,original_image,window_size=11,gaussian_sigma=1.5,K1=0.01,K2=0.03,alfa=1,beta=1,gama=1):
    distorted_image=np.array(distorted_image,dtype=np.float64)
    original_image=np.array(original_image,dtype=np.float64)
    if not distorted_image.shape == original_image.shape:
        raise ValueError("Input Imagees must has the same size")
    if len(distorted_image.shape) > 2:
        raise ValueError("Please input the images with 1 channel")
    kernal=gaussian_2d_kernel(window_size,gaussian_sigma)

    #求ux uy ux*uy ux^2 uy^2 sigma_x^2 sigma_y^2 sigma_xy等中间变量
    ux=correlation(distorted_image,kernal)
    uy=correlation(original_image,kernal)
    distorted_image_sqr=distorted_image**2
    original_image_sqr=original_image**2
    dis_mult_ori=distorted_image*original_image
    uxx=correlation(distorted_image_sqr,kernal)
    uyy=correlation(original_image_sqr,kernal)
    uxy=correlation(dis_mult_ori,kernal)
    ux_sqr=ux**2
    uy_sqr=uy**2
    uxuy=ux*uy
    sx_sqr=uxx-ux_sqr
    sy_sqr=uyy-uy_sqr
    sxy=uxy-uxuy
    C1=(K1*255)**2
    C2=(K2*255)**2
    #常用情况的SSIM
    if(alfa==1 and beta==1 and gama==1):
        ssim=(2*uxuy+C1)*(2*sxy+C2)/(ux_sqr+uy_sqr+C1)/(sx_sqr+sy_sqr+C2)
        return np.mean(ssim)
    #计算亮度相似性
    l=(2*uxuy+C1)/(ux_sqr+uy_sqr+C1)
    l=l**alfa
    #计算对比度相似性
    sxsy=np.sqrt(sx_sqr)*np.sqrt(sy_sqr)
    c=(2*sxsy+C2)/(sx_sqr+sy_sqr+C2)
    c=c**beta
    #计算结构相似性
    C3=0.5*C2
    s=(sxy+C3)/(sxsy+C3)
    s=s**gama
    ssim=l*c*s
    return np.mean(ssim)

PSNR的代码

提供了两种方法,网上找的。文章来源地址https://www.toymoban.com/news/detail-752107.html

def psnr_A(img1, img2):
    mse = np.mean((img1 / 1.0 - img2 / 1.0) ** 2)
    if mse < 1e-10:
        return 100
    psnr1 = 20 * math.log10(255 / math.sqrt(mse))
    return psnr1


def psnr_B(img1, img2):  # 第二种法:归一化
    mse = np.mean((img1 / 255.0 - img2 / 255.0) ** 2)
    if mse < 1e-10:
        return 100
    PIXEL_MAX = 1
    psnr2 = 20 * math.log10(PIXEL_MAX / math.sqrt(mse))
    return psnr2

到了这里,关于图像增强的两个评价指标:峰值信噪比PSNR和结构相似度SSIM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 音频筑基:信噪比SNR指标

    在分析音频信号中,信噪比是我们经常遇到的概念,这里谈谈自己的理解。 定义 SNR,Signal to Noise Ratio,信噪比,也常缩写为S/N 概念 顾名思义,就是信号和噪声的比值,实际应用时比值结果常转到dB域中 信号,原系统输出的理论信号 噪声,指经过某系统后,原信号不存在的

    2024年02月04日
    浏览(29)
  • 信噪比的定义及计算方法

    英文名称叫做SNR或S/N(SIGNAL-NOISE RATIO),又称为讯噪比。是指一个电子设备或者电子系统中 信号与噪声的比例 。这里面的信号指的是来自设备外部需要通过这台设备进行处理的电子信号,噪声是指经过该设备后产生的原信号中并不存在的无规则的额外信号(或信息),并且该

    2024年02月01日
    浏览(22)
  • Matlab 生成一定信噪比的信号

    信噪比公式 1 : S N R = 10 ∗ l o g 10 P s P n 信噪比公式1:SNR=10*log_{10}frac{P_s}{P_n} 信噪比公式 1 : SNR = 10 ∗ l o g 10 ​ P n ​ P s ​ ​ 其中, P s P_s P s ​ 和 P n P_n P n ​ 分别指 信号的平均功率、噪声的平均功率。 当信号和噪声的长度相等为N时,根据平均功率的公式 P s = E s /

    2024年02月11日
    浏览(33)
  • 视频的动态范围、信噪比和比特数

    在机器视觉系统中,反映每一个像元灰度质量的指标是动态范围,也是机器视觉系统要考虑的重要指标之一。动态范围和空间分辨率是机器视觉系统的两个主要指标。 灰度的动态范围在摄像头中的模拟视频部分用信噪比(Signal to Noise Ratio)SNR表示;而在摄像头或采集卡的A/

    2023年04月09日
    浏览(25)
  • 理解信噪比SNR,Eb/N0,Es/N0

    之前学习主要考虑的SNR和误码率,对Eb/N0和Es/N0不太了解,这次边记录边学习一下(希望随着自己的学习可以不断完善)。 信噪比,即信号功率与噪声功率的比值: S:信号功率,N:噪声功率。 Eb/N0:每个二进制bit能量与噪声功率谱密度的比值(比特信噪比)。 Es/N0:  每个符号

    2024年02月04日
    浏览(27)
  • 通信系统中基于matlab的BPSK信噪比检测算法及实现

    根据是否需要辅助数据,信噪比估计算法可以分为数据辅助类算法(Data aided, DA)和非数据辅助类算法(No Data aided, NDA)。DA估计算法准确性较高,但是需要提供先验信息,需要牺牲信道传输效率。NDA方法在传输数据信息的同时进行信噪比估计,不影响信息传输效率,适用范围较广

    2024年02月04日
    浏览(32)
  • 常规波束形成——时域与频域常规窄带波束形成、信噪比计算(附代码)

    最近学习了一下《最优阵列处理技术》,应老师要求写一个线性均匀水听器阵列的常规波束形成,由于是初学者,写的可能会有点问题,欢迎大家提出修改建议和指导,写这个主要是记录自己的思考,其次是和初学者进行交流提升。 要实现波束形成,首先得了解频率波束响应

    2024年02月04日
    浏览(27)
  • 医学图像分割常用的评价指标

        在医学图像分割的论文中,常常看到Dice、VOE、RVD、MSD等指标,但是具体这些指标是什么意思呢,我们进行相应的简单说明。 V s e g text V_{s e g} V s e g ​ :代表预测的分割结果 V g t text V_{g t} V g t ​ :代表ground truth的分割结果     Dice 系数是一种评估相似度的函

    2024年02月08日
    浏览(24)
  • 图像去雾算法评价指标

    评价一个去雾算法的好坏,常常使用主观评价法和客观评价法。 主观评价即通过肉眼观察经过去雾处理的图像,从图像的纹理特征、对比度、饱和度及细节信息等多方面进行感官感受和评价。主观评价主要是通过人眼视觉系统的主观感受在确定好的评价基础上做出相应的判断

    2024年02月06日
    浏览(23)
  • 图像分割评价指标:Dice和MIoU

    Dice用来衡量预测结果pred和标签label的相似度,公式如下图所示,即两个集合的交集/并集。 注意:对于多分类的分割任务,网络的输出结果是多通道的,使用Dice计算准确度需要将标签转换为多通道的one_hot形式。 如果需要计算 dice loss ,只需要 1- dice_acc 即可。 可以借助 torc

    2024年02月02日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包