openCV

【OpenCV】でフィルタ処理 中央値フィルタ(python)

中央値フィルタ

カーネル内の全画素の中央値を計算します。ごま塩ノイズのようなノイズに対して効果的です。

ガウシアンフィルタなどの出力結果は原画像中には存在しない画素値を出力とするのに対して,中央値フィルタの出力は常に原画像中から選ばれています。そのためごま塩ノイズのような特異なノイズに対して効果的です

元の画像
平滑化

基本的な使い方

平滑化(medianBlur)

cv2.medianBlur("対象画像", カーネルサイズ)

カーネルサイズが大きいほど、ノイズが平滑化されます

カーネルには縦✖︎横の中央値が必要なので必ず奇数である必要があります

サンプルコード

import cv2

file_noizu = 'img/noizu.jpg'

color_noizu = cv2.imread(file_noizu , 1) 

blur = cv2.medianBlur(color_noizu,9)

while 1:
    cv2.imshow("color_noizu", blur)
    
    k = cv2.waitKey(1)
    
    if k == ord('q'): # Qキーが押されたら終了
        break
        
cv2.destroyAllWindows()