OpenCV中的卷積高斯模糊與中值模糊

目錄

一、卷積高斯模糊 (Gaussian Blur)

1. 原理與數學基礎

2. OpenCV函數實現

3. 關鍵參數說明

4. 代碼示例

5. 特點與應用

二、中值模糊 (Median Blur)

1. 原理與數學基礎

2. OpenCV函數實現

3. 關鍵參數說明

4. 代碼示例

5. 特點與應用

三、兩種模糊方法對比分析

四、實際應用建議


一、卷積高斯模糊 (Gaussian Blur)

1. 原理與數學基礎

高斯模糊是通過高斯核與圖像進行卷積運算實現的平滑濾波,其核心是高斯函數: [ G(x,y) = \frac{1}{2\pi\sigma^2}e^{-\frac{x^2+y^2}{2\sigma^2}} ]

  • 權重呈正態分布,中心像素權重最高
  • 標準差σ控制模糊程度,σ越大模糊效果越強
  • 核大小通常為奇數(如3×3,5×5,7×7),確保中心對稱
2. OpenCV函數實現
void cv::GaussianBlur(InputArray src,        // 輸入圖像OutputArray dst,       // 輸出圖像Size ksize,            // 高斯核大小 (width, height)double sigmaX,         // X方向標準差double sigmaY = 0,     // Y方向標準差(默認與sigmaX相同)int borderType = BORDER_DEFAULT  // 邊界處理方式
)
3. 關鍵參數說明
  • ksize:必須為正奇數,如(3,3)、(5,5),核越大計算量越大
  • sigmaX/sigmaY:控制模糊程度,建議設置σ=0讓函數自動計算(σ = 0.3×((ksize-1)×0.5 - 1) + 0.8)
  • borderType:常用BORDER_DEFAULT(等價于BORDER_REFLECT_101),處理圖像邊緣像素
4. 代碼示例
#include <opencv2/opencv.hpp>
using namespace cv;int main() {Mat img = imread("input.jpg");Mat blurImg;// 應用5×5高斯模糊,sigma自動計算GaussianBlur(img, blurImg, Size(5,5), 0, 0);imwrite("gaussian_result.jpg", blurImg);return 0;
}
5. 特點與應用

??優點:平滑效果自然,保留更多圖像細節

??缺點:對椒鹽噪聲抑制效果有限

📌?適用場景

  1. 預處理階段去除高斯噪聲
  2. 邊緣檢測前的降噪
  3. 圖像縮放前的抗鋸齒處理

二、中值模糊 (Median Blur)
1. 原理與數學基礎

中值模糊通過取鄰域像素的中值替代中心像素值,屬于非線性濾波:

  1. 將核內所有像素排序
  2. 取中間值作為中心像素新值
  3. 核大小為奇數以確保存在唯一中值
2. OpenCV函數實現
void?cv::medianBlur(InputArray?src,????????//?輸入圖像(單通道或三通道8位/16位)OutputArray?dst,???????//?輸出圖像int?ksize??????????????//?核大小(正奇數))
3. 關鍵參數說明
  • ksize:必須為正奇數(3,5,7,...),核大小增加會顯著提升計算量
  • 僅支持單通道或三通道圖像,不支持多通道或浮點型圖像
  • 無需設置標準差等參數,使用簡單
4. 代碼示例
#include <opencv2/opencv.hpp>
using namespace cv;int main() {Mat img = imread("noisy_input.jpg");Mat medianImg;// 使用3×3核進行中值模糊medianBlur(img, medianImg, 3);imwrite("median_result.jpg", medianImg);return 0;
}
5. 特點與應用

??優點

  1. 有效去除椒鹽噪聲(salt-and-pepper noise)
  2. 邊緣保留效果優于高斯模糊

??缺點

  1. 計算復雜度高(O(n2logn),n為核大小)
  2. 可能導致圖像細節模糊

📌?適用場景

  1. 相機傳感器噪聲去除
  2. 醫學圖像去噪
  3. 工業檢測中的斑點噪聲處理

三、兩種模糊方法對比分析
指標高斯模糊中值模糊
算法類型線性濾波(卷積)非線性濾波(排序取中值)
噪聲抑制高斯噪聲效果好椒鹽噪聲效果好
邊緣保留一般(邊緣會模糊)較好(邊緣更銳利)
計算效率高(O(n2))低(O(n2logn))
參數敏感性受sigma和核大小共同影響僅受核大小影響
核大小要求正奇數正奇數
四、實際應用建議
  1. 噪聲類型判斷

    • 高斯噪聲(如傳感器熱噪聲) → 高斯模糊
    • 椒鹽噪聲(如傳輸錯誤) → 中值模糊
  2. 參數選擇策略

    • 高斯模糊:優先調整sigma,核大小通常取(2σ+1)×(2σ+1)
    • 中值模糊:從3×3開始嘗試,噪聲嚴重時逐步增大
  3. 性能優化

    • 嵌入式系統建議使用高斯模糊(計算量小)
    • 中值模糊可考慮分離核優化(OpenCV已內部實現)
  4. 組合使用: 復雜場景可先中值去椒鹽噪聲,再高斯模糊去除剩余高斯噪聲

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/89968.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/89968.shtml
英文地址,請注明出處:http://en.pswp.cn/web/89968.shtml

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

相關文章

macbookpro m1 max本兒上速搭一個elasticsearch+kibana環境

一、找個目錄&#xff0c;新建一個: docker-compose.yml version: "3.9" services:elasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch:8.13.0 # 與 Kibana 版本一致container_name: elasticsearchenvironment:- discovery.typesingle-node- xpa…

部署zabbix企業級分布式監控

一. 監控系統的功能概述監控、從中文的字義來看&#xff0c;有兩個內容&#xff0c;一是檢測&#xff0c;二是控制。重點在第一個字眼&#xff0c;即檢測、預防的意思。監控&#xff0c;對應的英文單詞是 Monitoring。在計算機領域&#xff0c;可以將其分為5種監控類型。應用性…

【重學MySQL】redolog binlog

目錄 Buffer Pool是什么&#xff1f; redo log&#xff08;Innodb獨有&#xff09; 為什么需要redolog&#xff1f; 類比的方式巧記redolog binlog&#xff08;Server層獨有&#xff09; binlog是干啥的&#xff1f; 為什么有了 binlog&#xff0c; 還要有 redo log&…

企業信息化建設技術底座建設解決方案

1、企業數字化底座與數字化綜述2、企業數字化底座與數字化總體架構3、企業數字化底座與數字化規劃設計4、企業數字化底座與數字化建設運營5、企業數字化底座與數字化未來展望篇幅有限以下只展示部分截圖&#xff1a;

Spring Cloud Alibaba 之 Nacos

Spring Cloud Alibaba 之 Nacos . Nacos官方文檔&#xff1a; https://nacos.io/docs/latest/overview/?spm5238cd80.47ee59c.0.0.770fcd36HoVbU6 1.什么是Nacos Nacos&#xff08;Dynamic Naming and Configuration Service&#xff09;是阿里巴巴開源的一款動態服務發現、…

Car Kit重構車機開發體驗,讓車載應用開發駛入快車道

在智能座艙成為汽車行業“新四化”核心戰場的今天&#xff0c;開發者們正面臨這樣的挑戰&#xff1a;如何讓手機應用快速適配車機場景&#xff1f;如何實現手機與車機無感流轉&#xff1f;如何在保障駕駛安全的前提下提供沉浸式交互體驗&#xff1f; HarmonyOS SDK 車服務&…

ruoyi-flowable-plus Excel 導入數據 Demo

&#x1f4c1; 項目結構簡述 ruoyi-flowable-plus 是基于 RuoYi 的擴展項目&#xff0c;使用&#xff1a; 后端&#xff1a;Spring Boot MyBatis Flowable前端&#xff1a;Vue.js &#x1f4e5; Excel 導入功能 Demo 以導入用戶數據為例&#xff0c;展示完整導入流程。 …

kafka 日志索引 AbstractIndex

AbstractIndexAbstractIndex 是 Kafka 日志&#xff08;Log&#xff09;子系統中一個至關重要的基礎類。它為 Kafka 的各種索引文件&#xff08;如偏移量索引 .index 和時間戳索引 .timeindex&#xff09;提供了一個統一的、抽象的框架。這個類的設計目標是實現極高的讀寫性能和…

重學前端008 --- 響應式網頁設計 CSS 無障礙 Quiz

文章目錄meta 總結html 頁面結構img 尺寸子選擇器 >a 錨點僅屏幕閱讀器可見li 元素的懸停設置小屏幕防止溢出meta 總結 <head><!-- 基礎字符編碼聲明 --><meta charset"UTF-8"><!-- 視口設置&#xff0c;響應式設計必備 --><meta nam…

C# 調用CodeSoft模板打印標簽,編輯模板覆蓋根目錄的文件,不能拷貝

C# 調用CodeSoft模板打印標簽&#xff0c;編輯模板覆蓋根目錄的文件&#xff0c;不能拷貝&#xff0c;報文件已經打開。 原因&#xff1a;C#窗體關閉時&#xff0c;沒有關閉LabelManager2.ApplicationClass labApp&#xff0c;別忘記寫labApp1.Quit(); if (labApp1 ! null) {la…

Logback簡單使用

Logback 日志框架介紹 正如你所知&#xff0c;開發者擁有大量日志工具可供選擇。本節中&#xff0c;我們將學習一個非常流行的日志庫 —— Logback。它是 Log4j 日志庫的繼任者&#xff0c;基于相似的理念構建。Logback 在同步和異步日志記錄方面都非常快速&#xff0c;并提供了…

Python爬蟲實戰:研究langid.py庫相關技術

一、引言 在當今全球化的網絡環境下,互聯網上的內容呈現出多語言的特點。對于許多自然語言處理 (NLP) 任務,如文本分類、情感分析和信息檢索,準確識別文本的語言是首要步驟。網絡爬蟲作為獲取互聯網內容的重要工具,結合語言識別技術,可以為多語言信息處理提供豐富的數據來…

打車代駕 app 派單接單系統模塊搭建

一、邏輯分析打車代駕 APP 的派單接單系統模塊是整個應用的核心部分&#xff0c;它需要高效、準確地處理訂單分配和司機接單流程&#xff0c;以確保用戶能夠快速得到服務&#xff0c;司機能夠合理地接到訂單。用戶端下單邏輯&#xff1a;用戶打開 APP&#xff0c;輸入出發地、目…

Java Stream API性能優化:原理深度解析與實戰指南

Java Stream API性能優化&#xff1a;原理深度解析與實戰指南 技術背景與應用場景 隨著大數據量處理和高并發場景的普及&#xff0c;傳統的集合遍歷方式在代碼可讀性和性能上逐漸顯現瓶頸。Java 8引入的Stream API&#xff0c;通過聲明式的流式編程極大提升了開發效率和可讀性&…

Nginx配置proxy protocol代理獲取真實ip

Nginx配置proxy protocol 文章目錄Nginx配置proxy protocol前言一、PROXY Protocol協議二、配置方法代理服務器配置http模塊代理??Stream 模塊?代理測試配置是否生效端口檢查測試ip記錄驗證http驗證tcp注意事項和理解誤區應用程序機器配置總結前言 在現代開發中有很多場景需…

什么是商業智能BI數據分析的指標爆炸?

指標爆炸這個詞大家可能都是第一次聽說&#xff0c;指標怎么會爆炸呢&#xff1f;其實這個是我們很多年前在一些商業智能BI項目上總結出來的一種場景或者現象&#xff0c;就是過于的開放給業務人員在BI自助分析過程中創造了很多衍生性的分析指標&#xff0c;結果就造成了前端指…

Spring AI 系列之十八 - ChatModel

之前做個幾個大模型的應用&#xff0c;都是使用Python語言&#xff0c;后來有一個項目使用了Java&#xff0c;并使用了Spring AI框架。隨著Spring AI不斷地完善&#xff0c;最近它發布了1.0正式版&#xff0c;意味著它已經能很好的作為企業級生產環境的使用。對于Java開發者來說…

Linux學習之Linux系統權限

在上一篇的內容中我們學習到了Linux系統命令相關的知識及其相關的擴展內容&#xff0c;本期我們將學習Linux基礎的另一個重要部分&#xff1a;Linux系統權限管理 作者的個人gitee&#xff1a;樓田莉子 (riko-lou-tian) - Gitee.com 目錄 權限概念及必要性 什么是權限 為什么要…

Web3.0 能為你帶來哪些實質性的 改變與突破

如今各種大廠裁員消息層出不窮&#xff0c;今年又添飛書、剪映、微軟、思科... 這有一張網友整理的去年互聯網大廠裁員裁員信息表&#xff1a; 目前國內很多大廠都在裁員&#xff0c;非常現實、且越來越多 35 技術人&#xff0c;正在面臨這樣的問題&#xff0c;那么Web3.0 確實…

doker centos7安裝1

1.什么是doker Docker 是一個開源的應用容器引擎&#xff0c;它允許開發者將應用程序及其依賴項打包到一個可移植的容器中&#xff0c;然后發布到任何支持 Docker 的操作系統上&#xff0c;實現 “一次構建&#xff0c;到處運行”。 容器是一種輕量級的虛擬化技術&#xff0c…