OpenCV – メディアンフィルタの仕組みと cv2.medianBlur の使い方

OpenCV – メディアンフィルタの仕組みと cv2.medianBlur の使い方

概要

メディアンフィルタについて解説し、OpenCV の cv2.medianBlur でメディアンフィルタを適用する方法を紹介します。

Advertisement

メディアンフィルタ

メディアンフィルタとは、フィルタ内の画素を小さい順にソートしたときに真ん中にくる画素を出力する非線形フィルタです。

メディアンフィルタ

cv2.bilateralFilter

cv2.bilateralFilter() でバイラテラルフィルタを適用できます。

sample.jpg

In [1]:
import cv2
import numpy as np
from IPython.display import Image, display


def imshow(img):
    """ndarray 配列をインラインで Notebook 上に表示する。
    """
    ret, encoded = cv2.imencode(".jpg", img)
    display(Image(encoded))

    # 画像を読み込む。


img = cv2.imread("sample.jpg")

# バイラテラルフィルタ
dst = cv2.medianBlur(img, 3)
imshow(dst)

メディアンフィルタにより、白いノイズが削除できたことを確認しました。