OpenCV Reference

【OpenCV-Python】medianBlur(メディアンフィルタ)

OpenCVで画像のメディアンフィルタを行うには、medianBlur()関数を用います。

メディアンフィルタは、ごま塩ノイズやスパイクノイズなどと言われる、小さい点々のノイズを除去するのに効果的です。

また、他の平滑化(blur)やガウシアンフィルタ(GaussianBlur)などと比べて、画像のエッジ部分がぼやけることがありません。

OpenCV Python medianBlur メディアンフィルタ OpenCV Python medianBlur メディアンフィルタ
元画像 メディアンフィルタ後

メディアンフィルタ処理の構文

medianBlur( src, ksize[, dst] ) -> dst

引数

src メディアンフィルタ処理を行う画像データを指定します。
ksize カーネルのサイズを正の奇数で指定します。1, 3, 5…
カーネルは幅と高さが同じサイズになります。

戻り値

dst メディアン処理された画像データ

サンプルプログラム

メディアンフィルタ処理のサンプルプログラムを以下に示します。

import cv2

src = cv2.imread("Pepper.bmp", cv2.IMREAD_UNCHANGED)

# メディアンフィルタ
dst = cv2.medianBlur(src, 5)

# 二値化処理後の画像表示
cv2.imshow("Src Image", src)
cv2.imshow("medianBlur", dst)
cv2.waitKey()

実行結果

OpenCV Python medianBlur メディアンフィルタ

参照ページ

OpenCV: Image Filtering
メディアンフィルタ
平滑化フィルタでは注目画素の周辺画素の輝度値を平均し、ノイズを除去していましたが、画像の輪郭もボケてしまう欠点がありました。それに対し、メディアンフィルタでは周辺輝度値の大きさを順に並べ、メディアン(中央値)を注目画素に置き換えることでノイ...

コメント

タイトルとURLをコピーしました