Python | OpenCV 基本濾波與模糊效果
📚 前言
在前面我們學會了 調整亮度、對比與負片效果。
這一篇要進一步學習 基本濾波與模糊效果,這些操作屬於影像的平滑化處理,能幫助我們降低雜訊、改善影像品質,或製造特殊的視覺效果。
🔍 基本概念
- 基本濾波 (Filtering):影像處理中的「平滑化」方法,用來降低雜訊或細節。
- 專業說法:利用「卷積核 (Kernel)」在影像上滑動,計算區域像素的加權值,並用結果更新中心像素。
- 白話說法:就是「取出一塊指定區域,把裡面所有像素值加起來取平均,再用這個平均值取代中心像素」。
- 常見方法:
- 平均模糊 (blur):取區域平均值,簡單降噪。
- 高斯模糊 (GaussianBlur):加權平均,權重符合高斯分佈,效果自然。
- 中值模糊 (medianBlur):取區域中值,特別適合去除椒鹽雜訊。
- 雙邊模糊 (bilateralFilter):同時考慮空間距離與像素差異,能保留邊緣細節。
💻 範例程式:平均模糊 (blur)
1 | import cv2 |

圖:平均模糊 5x5 與 25x25 示例
💻 範例程式:高斯模糊 (GaussianBlur)
1 | import cv2 |

圖:高斯模糊 5x5 與 25x25 示例
💻 範例程式:中值模糊 (medianBlur)
1 | import cv2 |

圖:中值模糊 5x5 與 25x25 示例
💻 範例程式:雙邊模糊 (bilateralFilter)
1 | import cv2 |

圖:雙邊模糊示例
📌 參數說明
1 | cv2.bilateralFilter(img, d, sigmaColor, sigmaSpace) |
- img:來源影像。
- d:相鄰像素的直徑。
- 常用值為 5。
- 數值越大,計算範圍越廣,但運算速度也會變慢。
- sigmaColor:顏色混合的程度。
- 數值越大,會混合更多區域的顏色,產生更大區塊的同一種顏色。
- sigmaSpace:空間距離的影響範圍。
- 數值越大,影響的範圍就越大,更多像素會被納入計算。
⚠️ 注意事項
- 卷積核大小:數值越大,模糊效果越強,但也可能導致影像失真。
- Gaussian 模糊:適合處理高斯雜訊,效果自然。
- Median 模糊:適合處理椒鹽雜訊 (Salt-and-Pepper Noise)。
- Bilateral 濾波:能保留邊緣細節,常用於人像或需要邊緣清晰的影像。
- 應用場景:影像前處理、邊緣檢測前的降噪、人像美化、隱私模糊。
🎯 結語
這一篇我們學會了如何進行 基本濾波與模糊效果,包含平均模糊、Gaussian 模糊、中值模糊與雙邊模糊,掌握影像平滑化的基礎技巧。這些方法能有效降低雜訊,並在影像處理流程中扮演重要角色。
在下一篇,我們將進一步學習 二值化與閾值處理,探索如何將影像轉換成黑白二值影像,方便後續分析。
📖 如在學習過程中遇到疑問,或是想了解更多相關主題,建議回顧一下 Python | OpenCV 系列導讀,掌握完整的章節目錄,方便快速找到你需要的內容。
註:以上參考了
OpenCV Tutorials
OpenCV-Python Tutorials
blur()
GaussianBlur()
medianBlur()
bilateralFilter()
