OpenCVで画像のメディアンフィルタを行うには、medianBlur()関数を用います。
メディアンフィルタは、ごま塩ノイズやスパイクノイズなどと言われる、小さい点々のノイズを除去するのに効果的です。
また、他の平滑化(blur)やガウシアンフィルタ(GaussianBlur)などと比べて、画像のエッジ部分がぼやけることがありません。
元画像 | メディアンフィルタ後 |
メディアンフィルタ処理の構文
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()
実行結果
参照ページ
https://docs.opencv.org/4.8.0/d4/d86/group__imgproc__filter.html#ga564869aa33e58769b4469101aac458f9