미디언 필터

미디언 필터는 대상 픽셀 주변의 이웃한 픽셀들 중 중앙값(median) 으로 대상 픽셀 값을 대체하는 방법을 말한다.

지금은 모두 디지털 TV를 시청하지만 옛날에 아날로그 TV를 쓰던 시절에는 신호가 약하면 지지직 하는 노이즈를 심심치 않게 볼 수 있었다.

이런 노이즈를 소금 & 후추(Salt & Pepper) 노이즈라고도 한다. 미디언 필터는 이런 노이즈 제거에 매우 효과적이다. 

OpenCV에서는 미디언 필터를 적용하기 위한 medianBlur함수를 제공한다.

medianBlur(Mat src, Mat dst, int ksize)
src : 원본 이미지
dst : 출력 이미지
ksize : 커널 크기, 1보다 큰 홀수로 지정. 그러므로 최소값 3

노이즈가 낀 레나 이미지

위와 같은 노이즈가 낀 레나 이미지를 개선하는 코드를 살펴보자.

private val kernelSize = 5
override fun process(src: Mat): Mat {
    val dst = Mat()
    Imgproc.medianBlur(src, dst, kernelSize)
    return dst
}

커널 크기를 5정도 지정하여 medianBlur를 적용하면 다음과 같이 개선된 이미지를 얻게 된다.

미디언 필터를 통해 노이즈 제거한 이미지

 

Buy me a coffeeBuy me a coffee
카테고리: AndroidOpenCV

0개의 댓글

답글 남기기

Avatar placeholder

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.