精华内容
下载资源
问答
  • PSNR

    2020-01-29 09:23:08
    PSNR(PeakSignaltoNoiseRatio) 峰值信噪比,是信号最大功率与信号噪声功率之比。 通常使用PSNR来测量已经被压缩的重构图像的质量。每个图片元素(像素)都有一个颜色值,当图像被压缩,然后解压缩时,颜色值可以...

    概念
    PSNR(PeakSignaltoNoiseRatio) 峰值信噪比,是信号最大功率与信号噪声功率之比。

    通常使用PSNR来测量已经被压缩的重构图像的质量。每个图片元素(像素)都有一个颜色值,当图像被压缩,然后解压缩时,颜色值可以改变。信号可以具有很宽的动态范围,所以PSNR通常以分贝(dB)表示。

    PSNR是最普遍,最广泛使用的评鉴画质的客观量测法,不过许多实验结果都显示,PSNR的分数无法和人眼看到的视觉品质完全一致,有可能PSNR较高者看起来反而比PSNR较低者差。这是因为人眼的视觉对于误差的敏感度并不是绝对的,其感知结果会受到许多因素的影响而产生变化(例如:人眼对空间频率较低的对比差异敏感度较高,人眼对亮度对比差异的敏感度较色度高,人眼对一个区域 的感知结果会受到其周围邻近区域的影响)。

    计算方法
    峰值信噪比定义为: 
    PSNR=10⋅log10(MAX2IMSE)=20⋅log10(MAXIMSE−−−−−√)
    PSNR=10⋅log10⁡(MAXI2MSE)=20⋅log10⁡(MAXIMSE)
    MAXIMAXI 表示图像I中像素的最大值,也可写为 2bits−12bits−1 bits位图像对应的二进制位数

    MSEMSE 表示两个图像的对应像素之间的像素值的差的平方的均值,计算公式为:

    MSE=∑Ni=1∑Mj=1(fij−f′ij)2M×N
    MSE=∑i=1N∑j=1M(fij−fij′)2M×N
    fij,f′ijfij,fij′分别表示被比较的图像的矩阵

    M,N分别表示图像的高和宽

    对于每点有RGB三个值的彩色图像来说峰值信噪比的定义类似,只是均方差是所有方差之和除以图像尺寸再除以 3。 
    两个图像之间PSNR值越大,则越相似。 
    图像压缩中典型的峰值信噪比值在 30 到 40dB 之间。普遍基准为30dB,30dB以下的图像劣化较为明显。
     

    展开全文
  • psnr

    2011-03-24 11:32:00
    http://blog.csdn.net/huzia/archive/2008/09/01/2861877.aspxBOOL PSNRCompute(CvArr *src,CvArr *dst,double *psnr){ double totalValue=0; IplImage *srcImage = (IplImage *)src; IplImage *dstImage = ...

    http://blog.csdn.net/huzia/archive/2008/09/01/2861877.aspx

     


    #include "stdafx.h"
    #include "highgui.h"
    #include "cv.h"
    #include "cxcore.h"
    #include "stdio.h"

    void CvtColor(IplImage* color,IplImage* grey){
     for (int i=0;i<color->width;i++) for (int j=0;j<color->height;j++){
      float total = 0.0;
      for (int z=0;z<color->nChannels;z++){
       total += (unsigned char)(color->imageData)[j*color->widthStep+i*color->nChannels+z];
      }
      total /= 3.0;
      for (int z=0;z<color->nChannels;z++){
       if (total>=255) total = 255; if (total<=0) total = 0;
       grey->imageData[j*grey->widthStep+i*grey->nChannels+z] = total;
      }
     }
    }

    double PSNRCompute(CvArr *src,CvArr *dst)
    {
     double psnr=0;
     double totalValue=0;
     IplImage *srcImage = (IplImage *)src;
     IplImage *dstImage = (IplImage *)dst;
     int NR(srcImage->height),NC(srcImage->width);
     if (srcImage->width!=dstImage->width||srcImage->height!=dstImage->height)
     {
      printf("usage: Two images must have same size!/n");
     }else if (srcImage->nChannels!=dstImage->nChannels)
     {
      printf("usage:Two images must have same channels/n 1 dimension/n 3 dimension/n");
     }
     else if (srcImage->nChannels==1||dstImage->nChannels==1)
     {
      for (int i=0;i<srcImage->width;i++)
      {
       for (int j=0;j<srcImage->height;j++)
       {
        double s1 = srcImage->imageData[j*srcImage->widthStep+i*srcImage->nChannels+0];
        double s2 = dstImage->imageData[j*dstImage->widthStep+i*dstImage->nChannels+0];
        double sub = s1-s2;
        totalValue +=pow(sub,2);
       }
      }

     }
     else if(srcImage->nChannels==3||dstImage->nChannels==3)
     {
      IplImage *srcData = 0, *dstData= 0;
      srcData = cvCloneImage( srcImage );
      dstData = cvCloneImage( dstImage );

      CvtColor(srcImage,srcData);
      CvtColor(dstImage,dstData);
      cvNamedWindow("ab");
      cvShowImage("ab",srcData);
      cvWaitKey(0);

      for (int i=0;i<NR;i++)
      {
       for (int j=0;j<NC;j++)
       {
        double s1 = srcData->imageData[j*srcData->widthStep+i*srcData->nChannels+0];
        double s2 = dstData->imageData[j*dstData->widthStep+i*dstData->nChannels+0];
        double sub = s1-s2;
        totalValue +=pow(sub,2);
       }
      }

     }
     if (fabs(totalValue) < 1e-6)
     {
      psnr = 0;
     }
     else
     {
      double meanValue = totalValue/(NR*NC);
      psnr = 10*log((255*255)/meanValue);
     }
     return psnr;
    }

    void main(){
     float res ;
     IplImage* src = cvLoadImage("hb00.jpg");
     IplImage* dst = cvLoadImage("hb001.jpg");
     res = PSNRCompute(src,dst);
     printf("%f",res);
     getchar();

    展开全文
  • psnr_PSNR_源码

    2021-09-29 16:21:58
    数字水印的嵌入与提取算法有多种多样,那怎样评价数字水印嵌入效果和提取效果的好坏呢?业界是这样评价的:针对嵌入效果,我们用峰值信噪比(PSNR)进行评价,数值越大嵌入效果越好。
  • 计算两个 420YUV 的 Y-PSNR、U-PSNR、V-PSNR 和 YUV-PSNR,c++代码,计算细节和 HM 代码一致
  • psnr_psnr+nc_PSNR_NC_图像加密.zip
  • PSNR计算器

    2019-03-08 17:36:13
    PSNR峰值信噪比计算工具
  • 计算psnr值和nc值,可以用来进行图像加密的安全性分析
  • psnr_psnr+nc_PSNR_NC_图像加密_源码.zip
  • psnr C语言代码

    2020-08-20 19:42:35
    标签: psnr C语言代码
  • WS-PSNR:WS-PSNR-源码

    2021-05-30 15:47:04
    WS-PSNR ##对于 Linux 用户:在目录 WS-PSNR/WS-PSNR 中 $> 制作 $> ./main "输入参数" ##对于 Windows 用户:(VS2010 X64) 单击 WS-PSNR.sln main.exe“输入参数” WS-PSNR是一种评估球形域中两个视频剪辑...
  • psnr的matlab实验,内为子函数,直接可以使用。还包括一些测试图片。
  • PSNR MSE Calculation
  • PSNR计算

    2021-08-27 11:30:44
    psnr = 10 * np.log10(255 * 255 / mse) 2、彩色图 我蛮久才发现,彩图不是如上将rgb格式直接输入计算的,如大佬所说: 上面是针对灰度图像的计算方法,如果是彩色图像,通常有三种方法来计算。 分别计算 RGB 三...

    初入超分的我今天又涨知识了,记录一下

    1、灰度图

    不再多说,资料太多

    diff = im1 - im2
    mse = np.mean(np.square(diff))
    psnr = 10 * np.log10(255 * 255 / mse)

    2、彩色图

    我蛮久才发现,彩图不是如上将rgb格式直接输入计算的,如大佬所说

    上面是针对灰度图像的计算方法,如果是彩色图像,通常有三种方法来计算。

    • 分别计算 RGB 三个通道的 PSNR,然后取平均值。
    • 计算 RGB 三通道的 MSE ,然后再除以 3 。
    • 将图片转化为 YCbCr 格式,然后只计算 Y 分量也就是亮度分量的 PSNR。

    其中,第二和第三种方法比较常见。

    第三种方法在BasicSR的实现代码如下:

    # 输入为 WH3 格式,3为RGB
    img, gt = img[:,:,::-1], gt[:,:,::-1]  # RGB2BGR
    img = to_y_channel(img)                # BGR2YCbCr
    gt = to_y_channel(gt)
    
    mse = np.mean((img1 - img2)**2)        # 计算
    if mse == 0:
        return float('inf')
    return 20. * np.log10(255. / np.sqrt(mse))
    
    
    def to_y_channel(img):
        """Change to Y channel of YCbCr.
    
        Args:
            img (ndarray): Images with range [0, 255].
    
        Returns:
            (ndarray): Images with range [0, 255] (float type) without round.
        """
        img = img.astype(np.float32) / 255.
        if img.ndim == 3 and img.shape[2] == 3:
            img = bgr2ycbcr(img, y_only=True)
            img = img[..., None]
        return img * 255.
    
    
    def bgr2ycbcr(img, y_only=False):
        """Convert a BGR image to YCbCr image.
    
        The bgr version of rgb2ycbcr.
        It implements the ITU-R BT.601 conversion for standard-definition
        television. See more details in
        https://en.wikipedia.org/wiki/YCbCr#ITU-R_BT.601_conversion.
    
        It differs from a similar function in cv2.cvtColor: `BGR <-> YCrCb`.
        In OpenCV, it implements a JPEG conversion. See more details in
        https://en.wikipedia.org/wiki/YCbCr#JPEG_conversion.
    
        Args:
            img (ndarray): The input image. It accepts:
                1. np.uint8 type with range [0, 255];
                2. np.float32 type with range [0, 1].
            y_only (bool): Whether to only return Y channel. Default: False.
    
        Returns:
            ndarray: The converted YCbCr image. The output image has the same type
                and range as input image.
        """
        img_type = img.dtype
        img = _convert_input_type_range(img)
        if y_only:
            out_img = np.dot(img, [24.966, 128.553, 65.481]) + 16.0
        else:
            out_img = np.matmul(
                img, [[24.966, 112.0, -18.214], [128.553, -74.203, -93.786], [65.481, -37.797, 112.0]]) + [16, 128, 128]
        out_img = _convert_output_type_range(out_img, img_type)
        return out_img
    

    但也不是说RGB直接丢掉第一个公式里有问题,但是数值会比只计算Y通道的低1个多db,比的时候为了平均,需要统一RGB或者统一Y通道。

    展开全文
  • PSNR测评工具

    2018-12-27 10:25:54
    PSNR测评工具,它视频编码方面支持H.264,MPEG-4和H.263。
  • 基于opencv实现的,测试去噪图像PSNR,图像质量评价
  • matlab保存图片的代码PSNR_metric 在超分辨率研究中,计算PSNR是一项非常重要的任务,因为PSNR是最常用的指标之一。 但是早期的研究都是在matlab上进行的,还包括用于计算PSNR和预处理(双三次下采样和上采样)的...
  • psnr峰值信噪比

    2016-05-31 16:02:03
    很好的psnr matlab程序
  • 关于WS-PSNR、S-PSNR、CPP-PSNR ws-psnr 只是增加权重 s-psnr https://blog.csdn.net/lin453701006/article/details/78173707 cpp-psnr ...

    关于WS-PSNR、S-PSNR、CPP-PSNR

     

    ws-psnr

    只是增加权重

     

    s-psnr

    https://blog.csdn.net/lin453701006/article/details/78173707

     

    cpp-psnr

    https://blog.csdn.net/lin453701006/article/details/78119537?locationNum=10&fps=1

     

    转载于:https://www.cnblogs.com/zmmz/p/10103090.html

    展开全文
  • psnr 计算

    2019-10-02 03:42:25
    PSNR是“Peak Signal to Noise Ratio”的缩写,峰值信噪比。psnr一般是用于最大值信号和背景噪音之间的一个工程项目。 PSNR计算公式如下: 8bits表示法中,peak的最大值为255;MSE指Mean Sq...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,082
精华内容 3,632
关键字:

PSNR