圖像的均方差和信噪比計算

圖像的均方差和信噪比計算

  • 一、均方差
    • 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.pswp.cn/news/212548.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212548.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212548.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

接口測試-Jmeter使用

一、線程組 1.1 作用 線程組就是控制Jmeter用于執行測試的一組用戶 1.2 位置 右鍵點擊‘測試計劃’-->添加-->線程(用戶)-->線程組 1.3 特點 模擬多人操作線程組可以添加多個&#xff0c;多個線程組可以并行或者串行取樣器(請求)和邏輯控制器必須依賴線程組才能…

「Verilog學習筆記」多bit MUX同步器

專欄前言 本專欄的內容主要是記錄本人學習Verilog過程中的一些知識點&#xff0c;刷題網站用的是牛客網 輸入數據暫存在data_reg中&#xff0c;使能信號data_en用打兩拍的方式跨時鐘域傳輸到時鐘域B&#xff0c;最后data_out根據使能信號更新數據。data_en信號在A時鐘域用一個D…

Redis | Redis入門學習介紹及常見原理剖析

關注wx&#xff1a;CodingTechWork Redis介紹 概述 Redis是NoSQL&#xff0c;是key-value分布式內存數據庫。 緩存 緩存是將數據從慢的介質換到快的介質上&#xff0c;提高讀寫效率和性能&#xff0c;并降低數據庫的讀寫成本。內存的速度一般都遠遠大于硬盤的速度&#xf…

三個臭皮匠(ctr,nerdctl,crictl)頂一個諸葛亮(docker)

文章目錄 containerd簡介 nerdctl簡介安裝精簡 Minimal 安裝完整Full 安裝啟動服務 命令參數容器運行容器列出容器詳情容器日志容器進入容器停止容器刪除鏡像列表鏡像拉取鏡像標簽鏡像導出鏡像導入鏡像刪除鏡像構建配置tab鍵配置加速配置倉庫http方式https方式 ctr簡介命令參數…

12、虛函數的應用、虛析構函數

12、虛函數的應用、虛析構函數 運行時類型信息(RTTI)動態類型轉換(dynamic_cast)typeid操作符 虛 析構函數空虛析構函數 一個類中&#xff0c;除了構造函數和靜態成員函數外&#xff0c;任何函數都可以被聲明為虛函數 運行時類型信息(RTTI) 動態類型轉換(dynamic_cast) 用于…

AMC8美國數學競賽歷年真題集在線練習操作指南和2024年備考建議

今天是2023年12月10日&#xff0c;距離2024年的AMC8美國數學競賽的舉辦還有40天時間。據六分成長了解&#xff0c;有一些孩子報名參加了AMC8的機構培訓班系統學習&#xff0c;也有一些孩子選擇了自己自學備考。 有家長問AMC8的培訓是否一定要參加機構的培訓班學習&#xff1f;…

基于SpringBoot+thymeleaf協同過濾算法山河旅游推薦系統(Java畢業設計)

大家好&#xff0c;我是DeBug&#xff0c;很高興你能來閱讀&#xff01;作為一名熱愛編程的程序員&#xff0c;我希望通過這些教學筆記與大家分享我的編程經驗和知識。在這里&#xff0c;我將會結合實際項目經驗&#xff0c;分享編程技巧、最佳實踐以及解決問題的方法。無論你是…

windows端口被占用怎么辦 怎么關閉那個占用的端口

目錄 這是出現的情況怎么解決了1.請打開這玩意2.輸入下面---查詢 先關端口的信息根據id獲得服務 上圖的8888 對應的ip 上圖就是134243.殺死進程134244.重啟服務 這是出現的情況 怎么解決了 1.請打開這玩意 2.輸入下面—查詢 先關端口的信息 netstat -ano過濾信息查詢想要的端…

JavaScript將函數作為參數傳入

其他函數中&#xff0c;是一種常見的編程技巧&#xff0c;稱為回調函數。在 JavaScript 中&#xff0c;函數被視為一等公民&#xff0c;也就是說&#xff0c;它們可以像任何其他類型的值一樣被傳遞、分配和操作。 示例&#xff1a; function greet(name) {console.log(Hello …

央企國企相關

文章目錄&#xff1a; 一&#xff1a;央企國企的區別 二&#xff1a;分類 三&#xff1a;相關 1.考什么 2.有什么崗位 3.什么時候考 4.去哪里報名和查看信息 5.喜歡招聘什么專業 6.其他疑問 一&#xff1a;央企國企的區別 央企國企一共有47萬多個&#xff08;央企131個…

【8.0.34-0 ubuntu 安裝Mysql 后無法鏈接是什么情況】

8.0.34-0 ubuntu 安裝Mysql 后無法鏈接是什么情況 檢查日志解決辦法 檢查日志 如果檢查一下帳號密碼沒問題看一下日志&#xff1a; Plugin mysql_native_password reported: mysql_native_password is deprecated and will be removed in a future release. Please use cachi…

java中的context對象?

java中的context對象&#xff1f; 大家好&#xff0c;我是微賺淘客系統的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天&#xff0c;我們將深入研究Java中的神秘利器——Context對象。在Java開發中&#xff0c;Context對象扮演著重要的角…

排序算法之六:快速排序(遞歸)

快速排序的基本思想 快速排序是Hoare于1962年提出的一種二叉樹結構的交換排序方法 其基本思想為&#xff1a; 任取待排序元素序列中的某元素作為基準值&#xff0c;按照該排序碼將待排序集合分割成兩子序列&#xff0c;左子序列中所有元素均小于基準值&#xff0c;右序列中所…

《深入理解計算機系統》學習筆記 - 第四課 - 浮點數

Floating Point 浮點數 文章目錄 Floating Point 浮點數分數二進制示例能代表的數浮點數的表示方式浮點數編碼規格化值規格化值編碼示例 非規格化的值特殊值 示例IEEE 編碼的一些特殊屬性四舍五入&#xff0c;相加&#xff0c;相乘四舍五入四舍五入的模式二進制數的四舍五入 浮…

【Qt5】setWindowFlags的標志有哪些?

2023年12月9日&#xff0c;周六晚上 窗口類型&#xff1a; Widget&#xff08;0x00000000&#xff09;&#xff1a;普通窗口部件。Window&#xff08;0x00000001&#xff09;&#xff1a;標準窗口。Dialog&#xff08;0x00000002 | Window&#xff09;&#xff1a;對話框&#…

UI自動化Selenium 鼠標滑動懸停到指定元素

ActionChains執行原理 他是按照設計好的動作順序鏈式執行&#xff1b; 當調用ActionChains的方法時&#xff0c;不會立即執行&#xff0c;只是將要做的動作安裝順序存放在隊列中&#xff1b;當調用perform()方法時&#xff0c;隊列中的方法會依次執行&#xff1b; from sele…

西南科技大學數字電子技術實驗三(MSI邏輯器件設計組合邏輯電路及FPGA的實現)預習報告

一、計算/設計過程 說明:本實驗是驗證性實驗,計算預測驗證結果。是設計性實驗一定要從系統指標計算出元件參數過程,越詳細越好。用公式輸入法完成相關公式內容,不得貼手寫圖片。(注意:從抽象公式直接得出結果,不得分,頁數可根據內容調整) 1、4位奇偶校驗器 真值表 …

C++ Qt開發:使用關聯容器類

當我們談論編程中的數據結構時&#xff0c;順序容器是不可忽視的一個重要概念。順序容器是一種能夠按照元素添加的順序來存儲和檢索數據的數據結構。它們提供了簡單而直觀的方式來組織和管理數據&#xff0c;為程序員提供了靈活性和性能的平衡。 Qt 中提供了豐富的容器類&…

AI:大模型技術

Prompt Prompt&#xff08;提示&#xff09;是一種在人工智能領域&#xff0c;特別是在自然語言處理和聊天機器人中常用的技術。它是一種輸入&#xff0c;用于激發人工智能模型生成相應的輸出。在聊天機器人中&#xff0c;用戶輸入的問題或請求就是提示&#xff0c;而聊天機器…

基于AidLux的工業視覺少樣本缺陷檢測實戰應用

1. 模型轉換 AIMO網站&#xff1a; http://aimo.aidlux.com/ 試用賬號和密碼&#xff1a; 賬號&#xff1a;AIMOTC001 &#xff0c;密碼&#xff1a;AIMOTC001 上傳模型選擇目標平臺參數設置選擇自動轉換轉換結果并下載 2. 基于AidLux的語義分割模型部署 dataset2aidlux文件…