컴퓨터 그래픽스/영상처리

[OpenCV] spatial-domain filter

며용 2021. 5. 23. 20:07

low contrast

 

 

낮은 대조비 개선을 위해 히스토그램 평활화를 해줌.

 

 

 

 

구한 히스토그램 / 누적 히스토그램 / 평활화된 히스토그램

 

여러가지 시도를 해보았다.

(감마는 0.7로 줌)

 

 

 

히스토그램 평활화               /                           감마보정

히스토그램 평활화 후 감마보정          /           감마보정 후 히스토그램 평활화

 

 

 

가져온 이미지가 조금 어둡고 블러링된 이미지이기 때문에, 

이미지를 밝게 해주기 위해서 감마보정을 하고 샤프닝 필터를 적용했다.

 

 

 

 

Gaussian noisy image

 

가우시안 노이즈가 들어간 이미지에 가우시안 필터를 적용했다.

가우시안 노이즈는 자연적으로 랜덤하게 발생하는 노이즈이다.

추가로 메디안 필터도 적용해보았다.

 

 

 

가우시안 필터는 현재 픽셀값과 주변 이웃 픽셀값들의 가중 평균을 이용해서 현재 픽셀의 값을 대체한다.

둘 다 블러 필터라 노이즈가 사라지면서 블러효과도 생김

메디안보다는 가우시안 필터가 블러가 덜 심함

 

 

 

 

medianBlur(InputArray src, OutputArray dst, int ksize);

 

void GaussianBlur(InputArray src, OutputArray dst, Size ksize, double sigmaX, double sigmaY=0, int borderType=BORDER_DEFAULT )

 

ksize는 필터의 사이즈.

 

 

 

가우시안 필터 사이즈별 비교

원본  /  가우시안 3x3  / 가우시안 7x7

 

 

 

 

impulse noise

 

impulse noise는 다른 말로 salt and pepper noise라 한다.

(갑자기 튀는 잡음)

 

 

salt and pepper noise에 가장 효과적인 median 필터를 사용했다.

 

메디안 필터는 크기 순서대로 정렬한 후 중간크기의 값을 사용하는 필터이기 때문에 튀는 잡음을 제거하는데 효과적이다.

 

 

 

연달아서 여러 개의 픽셀에 발생한 노이즈를 제거한다거나 픽셀값을 크기 순으로 정렬하다보면 특별히 문제가 없는 픽셀 값도 바뀔 수 있다는 문제가 생길 수 있다.

 

픽셀이 연달아 노이즈가 있다면 3인 마스크를 5로 늘려주는 식으로 마스크의 크기를 늘려주면 해결이 되겠지만 마스크가 씌워진 영역은 값이 바뀔 수 있기 때문에 이미지의 윤곽이 무너질 수 있다. (블러링 효과)

따라서 무작정 마스크의 크기를 크게 잡을 수 없다.

 

 

 

Reference:

ver2.4.13.7

Operations on Arrays

https://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html#void%20sqrt(InputArray%20src,%20OutputArray%20dst)

 

ver2.4.13.7

Image Filtering

https://docs.opencv.org/2.4/modules/imgproc/doc/filtering.html?highlight=medianblur#void%20Laplacian(InputArray%20src,%20OutputArray%20dst,%20int%20ddepth,%20int%20ksize,%20double%20scale,%20double%20delta,%20int%20borderType)

 

ver3.0.0

https://docs.opencv.org/3.0-beta/index.html

 

Open CV Library

https://opencvlib.weebly.com/