当前位置: 首页 > article >正文

图像的均方差和信噪比计算

图像的均方差和信噪比计算

  • 一、均方差
    • 1、公式
    • 2、代码
  • 二、信噪比
    • 1、公式
    • 2、代码

图像的均方差和信噪比公式及代码,代码基于opencv和C++实现。

一、均方差

均方误差,英文简称:MSE,英文全称:“Mean Square Error”。
衡量图像的相似度,值越小,表示图像越相似。

1、公式

在这里插入图片描述
I、J表示两幅图像。

2、代码

//均方差计算
double gGetMSE(Mat& srcImage, Mat& dstImage)
{
    Mat src = dstImage;
    Mat dst = srcImage;
    int channels = dstImage.channels();
    int rowsNumber = src.rows;
    int colsNumber = src.cols * channels;
    double sigma = 0.0;
    double mse = 0.0;
    for (int i = 0; i < rowsNumber; i++)
    {
        for (int j = 0; j < colsNumber; j++)
        {
            mse += (src.ptr<uchar>(i)[j] - dst.ptr<uchar>(i)[j]) * (src.ptr<uchar>(i)[j] - dst.ptr<uchar>(i)[j]);
        }
    }
    mse = mse / (rowsNumber * colsNumber);
    return mse;
}

二、信噪比

信号和噪声的比值,英文简称:SRN,英文全称:“Signal Noise Ratio”。
衡量信号中噪声的多少。

1、公式

在这里插入图片描述
f为原图,g为去噪后的图像

2、代码

//信噪比计算

double gGetSNR(Mat& srcImage, Mat& dstImage)
{
    Mat src = dstImage;
    Mat dst = srcImage;
    int channels = dstImage.channels();
    int rowsNumber = src.rows;
    int colsNumber = src.cols * channels;

    double sigma = 0.0;
    double mse = 0.0;
    double SNR = 0.0;
    for (int i = 0; i < rowsNumber; i++)
    {
        for (int j = 0; j < colsNumber; j++)
        {
            sigma += (src.ptr<uchar>(i)[j]) * (src.ptr<uchar>(i)[j]);
            mse += (src.ptr<uchar>(i)[j] - dst.ptr<uchar>(i)[j]) * (src.ptr<uchar>(i)[j] - dst.ptr<uchar>(i)[j]);
        }
    }
    SNR = 10 * log10(sigma / mse);
    return SNR;
}

http://www.kler.cn/news/162213.html

相关文章:

  • 模块电源(六):前馈电容
  • CSS中 设置文字下划线 的几种方法
  • 【LeetCode】202. 快乐数
  • crmeb本地开发配置代理
  • 过滤器Filter实现及执行顺序
  • 销售技巧培训之如何提高手机销售技巧
  • 机器学习应用 | 使用 MATLAB 进行异常检测(下)
  • 销售技巧培训之如何提升顾问式销售技巧
  • 传世SUN引擎如何安装
  • RabbitMq整合Springboot超全实战案例+图文演示+源码自取
  • MacBook 逆水寒下载安装使用教程,支持最新版本 MacOS 流畅不闪退
  • 如何解压没有密码的7-zip文件?
  • 如何解决5G基站高能耗问题?
  • 工业机器视觉megauging(向光有光)使用说明书(二,轻量级的visionpro)
  • 柏林噪声C++
  • 小白学java栈的经典算法问题——第四关白银挑战
  • jsp 分页查询展示,实现按 上一页或下一页实现用ajax刷新内容
  • SSL证书代理
  • 使用navicat(或者其他数据库管理工具)、powerdesigner导出数据字典
  • [MySQL--基础]多表查询
  • 刷题记录--算法--简单
  • Python---time库
  • CSS Grid布局入门:从零开始创建一个网格系统
  • 软件测试入门:静态测试
  • vim常见操作
  • Notepad安装
  • 查看电脑cuda版本
  • The LINQ expression “xxx“ could not be translated
  • PHP数据库操作实例 - 学生信息管理
  • 3、Linux_系统用户管理