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

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

  • 一、均方差
    • 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.hqwc.cn/news/258109.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

更多内窥镜维修技能学习与交流可关注西安彩虹

内窥镜结构及光学成像原理 众多品牌的硬镜其内部结构基本相似&#xff08;如下图&#xff09;&#xff0c;最关键的在于不同用途的硬镜在其结构上发生变化&#xff0c;包括光学成像系统和机械结构。光学成像系统由物镜系统、转像系统、目镜系统三大系统组成。 工作原理 被观察…

actitivi自定义属性(二)

声明&#xff1a;此处activiti版本为6.0 此文章介绍后端自定义属性解析&#xff0c;前端添加自定义属性方法连接&#xff1a;activiti自定义属性&#xff08;一&#xff09;_ruoyi activiti自定义标题-CSDN博客 1、涉及到的类如下&#xff1a; 简介&#xff1a;DefaultXmlPar…

Java中

LomBok的getset 与 直接代码里什么生成的区别 隐患 备注

kubernetes安装kubesphere

前置默认都安装了k8s&#xff0c;且k8s都正常 1、nfs文件系统 1.1、安装nfs-server # 在每个机器。 yum install -y nfs-utils# 在master 执行以下命令 echo "/nfs/data/ *(insecure,rw,sync,no_root_squash)" > /etc/exports# 执行以下命令&#xff0c;启动 …

java设计模式学习之【适配器模式】

文章目录 引言适配器模式简介定义与用途&#xff1a;实现方式&#xff1a;类型 使用场景优势与劣势适配器模式在Spring中的应用多媒体播放器示例代码地址 引言 在我们的日常生活中&#xff0c;适配器无处不在&#xff1a;无论是将不同国家的插头转换成本地标准&#xff0c;还是…

数学建模回归分析part2

回归系数的解释 思考: y b b1*Inx;此时b1怎么解释&#xff1f; 什么时候取对数 经验法则: &#xff08;1&#xff09;与市场价值相关的&#xff0c;例如&#xff0c;价格、销售额、工资等都可以取对数&#xff1b;&#xff08;2&#xff09;以年度量的变量&#xff0c;如受…

相控阵天线(十五):进阶稀疏阵列天线(边缘稀疏阵列、稀疏子阵天线、旋转稀疏子阵天线)

目录 简介圆形边缘稀疏阵列矩形边缘稀疏阵列稀疏子阵天线旋转稀疏子阵天线 简介 前面的博客已经介绍过常见的平面阵有一些基本类型&#xff0c;本篇博客介绍一些实际工程中可能出现的阵列&#xff0c;包括椭圆阵列、子阵通过矩形拼接形成的矩形大阵列和圆形大阵列、子阵通过三…

开源项目CuteSqlite开发笔记(二):SQLite的架构

在开发CuteSqlite图形客户端的时候&#xff0c;需要用到SQL的语法解释&#xff0c;来对SQL语句进行优化。找了很多的SQL语法解释器&#xff0c;都不是十分满意&#xff0c;只有翻开Sqlite的源码&#xff0c;看看SQLite对SQL语句的解释过程&#xff0c;本文是翻译的官方文档。 官…

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《考虑气电联合需求响应的气电综合能源配网系统协调优化运行》

这个标题涉及到一个涉及气体&#xff08;天然气&#xff09;和电力的综合能源配网系统&#xff0c;并且强调了考虑气电联合需求响应的协调优化运行。让我们逐步解读&#xff1a; 气电综合能源配网系统&#xff1a; 这指的是一个结合了气体&#xff08;通常是天然气&#xff09;…

柔性数组详解

目录 一、柔性数组的特点&#xff1a;​ 二、使用sizeof计算包含柔性数组的结构体的大小 三、柔性数组的使用 代码1: 四、用结构体指针代替柔性数组 代码2&#xff1a; 五、柔性数组与结构体指针对比 • 在结构体中 • 最后一个成员 • 未知大小的数组 这就是柔性…

吴恩达《机器学习》12-1:优化目标

在机器学习的旅程中&#xff0c;我们已经接触了多种学习算法。在监督学习中&#xff0c;选择使用算法 A 还是算法 B 的重要性逐渐减弱&#xff0c;而更关键的是如何在应用这些算法时优化目标。这包括设计特征、选择正则化参数等因素&#xff0c;这些在不同水平的实践者之间可能…

代码随想录算法训练营第三十八天|完全背包,518. 零钱兑换 II ,377. 组合总和 Ⅳ

完全背包 例题&#xff1a;有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品都有无限个&#xff08;也就是可以放入背包多次&#xff09;&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 区别&#x…