目錄
一、卷積高斯模糊 (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. 特點與應用
??優點:平滑效果自然,保留更多圖像細節
??缺點:對椒鹽噪聲抑制效果有限
📌?適用場景:
- 預處理階段去除高斯噪聲
- 邊緣檢測前的降噪
- 圖像縮放前的抗鋸齒處理
二、中值模糊 (Median Blur)
1. 原理與數學基礎
中值模糊通過取鄰域像素的中值替代中心像素值,屬于非線性濾波:
- 將核內所有像素排序
- 取中間值作為中心像素新值
- 核大小為奇數以確保存在唯一中值
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. 特點與應用
??優點:
- 有效去除椒鹽噪聲(salt-and-pepper noise)
- 邊緣保留效果優于高斯模糊
??缺點:
- 計算復雜度高(O(n2logn),n為核大小)
- 可能導致圖像細節模糊
📌?適用場景:
- 相機傳感器噪聲去除
- 醫學圖像去噪
- 工業檢測中的斑點噪聲處理
三、兩種模糊方法對比分析
指標 | 高斯模糊 | 中值模糊 |
---|---|---|
算法類型 | 線性濾波(卷積) | 非線性濾波(排序取中值) |
噪聲抑制 | 高斯噪聲效果好 | 椒鹽噪聲效果好 |
邊緣保留 | 一般(邊緣會模糊) | 較好(邊緣更銳利) |
計算效率 | 高(O(n2)) | 低(O(n2logn)) |
參數敏感性 | 受sigma和核大小共同影響 | 僅受核大小影響 |
核大小要求 | 正奇數 | 正奇數 |
四、實際應用建議
-
噪聲類型判斷:
- 高斯噪聲(如傳感器熱噪聲) → 高斯模糊
- 椒鹽噪聲(如傳輸錯誤) → 中值模糊
-
參數選擇策略:
- 高斯模糊:優先調整sigma,核大小通常取(2σ+1)×(2σ+1)
- 中值模糊:從3×3開始嘗試,噪聲嚴重時逐步增大
-
性能優化:
- 嵌入式系統建議使用高斯模糊(計算量小)
- 中值模糊可考慮分離核優化(OpenCV已內部實現)
-
組合使用: 復雜場景可先中值去椒鹽噪聲,再高斯模糊去除剩余高斯噪聲