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

news/2024/10/30 20:11:05/

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

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

相关文章

Lag-Llama:基于 LlaMa 的单变量时序预测基础模型

文章构建了一个通用单变量概率时间预测模型 Lag-Llama&#xff0c;在来自Monash Time Series库中的大量时序数据上进行了训练&#xff0c;并表现出良好的零样本预测能力。在介绍Lag-Llama之前&#xff0c;这里简单说明什么是概率时间预测模型。概率预测问题是指基于历史窗口内的…

HTML全局属性(global attribute)有哪些?web开发中会话跟踪的方法有哪些?对浏览器内核的理解? HTTP request报文结构是怎样的?

HTML全局属性(global attribute)有哪些&#xff1f; class :为元素设置类标识data-* : 为元素增加自定义属性draggable : 设置元素是否可拖拽id : 元素 id &#xff0c;文档内唯一lang : 元素内容的的语言style : 行内 css 样式title : 元素相关的建议信息 web开发中会话跟踪…

守护安全,六氟化硫气体泄漏报警装置校准服务

在电力工业中&#xff0c;六氟化硫&#xff08;SF6&#xff09;气体是一种重要的介质&#xff0c;它用作封闭式中、高压开关的灭弧和绝缘气体。六氟化硫气体的卓越性能实现了装置经济化、低维护化的操作。与普通装置相比&#xff0c;可以节省最多90&#xff05;的空间。 六氟化…

UWB的matlab仿真源码

作品详细文章与下载链接 第一部分:TR-UWB信号的产生和调制 简介 该实践涉及使用 MATLAB 生成和调制 TR-UWB 信号。超宽带信号是一类在频谱中具有宽带而不是窄带的信号信号&#xff0c;具有时间宽度的脉冲产生它。在本次实践中,MATLAB 程序是开发用于生成基带 TR-UWB 信号,我们用…

flink1.12.4消费kafka 报错 The coordinator is not available

报错 You should retry committing the latest consumed offsets. Caused by: org.apache.kafka.common.errors.CoordinatorNotAvailableException: The coordinator is not available. 但是任务还在正常跑. 开源bug [FLINK-28060] Kafka Commit on checkpointing fails rep…

【游戏引擎 - C#脚本系统】6、C#端调用C++函数

强烈建议阅读Mono官方文档 有mono库提供的API&#xff0c;这个过程非常简单&#xff0c;通过mono在C中注册函数&#xff0c;然后在C#中声明和调用这些函数 1、在C中注册Internal Call&#xff1a; C代码中定义一个函数 static void CppFunc() {std::cout << "这…

UE4 材质实现Glitch效果

材质实现Glitch效果 UE4 材质实现Glitch效果预览1预览2 UE4 材质实现Glitch效果 预览1 添加材质函数&#xff1a; MF_RandomNoise 添加材质&#xff1a; 预览2 添加材质函数MF_CustomPanner&#xff1a; 添加材质函数&#xff1a;MF_Glitch 材质添加&#xff1a; 下面用…

等待和通知

引入 由于线程是抢占式执行的,因此线程之间的执行的先后顺序难以预知 但是实际开发中我们希望合理协调多个线程之间执行的先后顺序. 这里的干预线程先后顺序,并不是影响系统的调度策略(内核里调度线程,仍然是无序调度). 就是相当于在应用程序代码中,让后执行的线程主动放弃被…