Python OpenCV cv2.medianBlur 中值濾波

本篇 ShengYu 將介紹 Python 使用 OpenCV cv2.medianBlur 來作影像平滑模糊化,在寫 Python 影像處理程式時常會用到 OpenCV 圖片平滑模糊化的功能,而中值濾波 Median Filtering 是其中一個方法,接下來介紹怎麼使用中值濾波 cv2.medianBlur 來進行影像平滑模糊化。

中值濾波 Median Filtering

這邊我們介紹中值濾波 Median Filtering,使用 cv2.medianBlur 就可以計算 kernel 視窗內所有 pixel 的中位數然後取代 kernel 中間的數值,中值濾波 Median Filtering 這個方法對於去除雜訊很有效,我們這邊示範讀取一個有雜訊 opencv logo 的圖片然後做 cv2.medianBlur,kernel 大小為 5,

opencv-medianBlur.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('opencv-logo-noise.png')

blur = cv2.medianBlur(img, 5)

plt.subplot(121), plt.imshow(img), plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(blur), plt.title('Blurred')
plt.xticks([]), plt.yticks([])
plt.tight_layout()
plt.show()

結果如下圖所示:

cv2.medianBlur 參數的詳細細節請參考這裡

參考
OpenCV: Smoothing Images
https://docs.opencv.org/4.x/d4/d13/tutorial_py_filtering.html

其它相關文章推薦
Python OpenCV 影像平滑模糊化 blur
Python OpenCV cv2.GaussianBlur 高斯濾波
Python OpenCV 影像二值化 Image Thresholding
Python OpenCV 彩色轉灰階(RGB/BGR to GRAY)
Python OpenCV 彩色轉HSV(RGB/BGR to HSV)
Python OpenCV 彩色轉YCbCr(RGB/BGR to YCbCr)
Python OpenCV 影像邊緣偵測 Canny Edge Detection
Python OpenCV resize 圖片縮放