-
[OpenCV] pyrMeanShiftFilteringStudy/OpenCV 2012. 9. 27. 18:23
OpenCV에서 library로 제공하는 image filtering algorithm 중 하나로, 노이즈 제거에 탁월한 효과가 있다.
기존에 많이 사용되는 Gaussian blur에 비해 속도는 10~20배정도 느리지만, filtering 성능은 매우 뛰어나다.
filtering 속도는 parameter setting에 따라 크게 좌우 되지만, 10~20배 정도의 시간으로 높은 효과를 얻을 수 있다.
그러나 parameter가 너무 많아 사용상 애를 먹는 경우가 많다. 한번 알았다고 해도, 다음에 쓸 때 또 헷갈리므로 정리해 둔다.
OpenCV reference문서의 설명은 맨 아래 이미지와 같다.
대략적으로 색이 비슷하고 거리가 가까운 영역을 부분을 찾는 방식이다.
자세한 원리는 http://en.wikipedia.org/wiki/Mean-shift 를 참고하면 된다.
C++ type의 함수를 쓴다고 가정할 때, parameter는 총 6가지이다.
parameter
description
InputArray src 원본 컬러 이미지. 보통 BGR 이미지면 된다.
OutputArray dst 필터링 결과 이미지. C++에서는 따로 초기화가 필요 없으나, C에서는 필요하다.
double sp Spatial Window의 크기. sampling pixel의 2차원 (x,y) 공간상 neighborhood 영역.
double sr Color Window의 크기. sampling pixel의 3차원 (r,g,b) Color 공간상 neighborhood boundary.
int maxLevel
pyramid를 만들 maximum level. 1로 설정되어 있지만, 원본 이미지가 충분히 클 경우 높으면 효과있음.
TermCriteria termcrit
meanshift algorithm의 수렴 조건. 기본 값을 그대로 써도 성능에 문제 없음.
'Study > OpenCV' 카테고리의 다른 글
Python 3.x에서 OpenCV 설치 (윈도우 환경) (0) 2018.01.05 [OpenCV] Mat() constructor 및 method를 이용한 초기화 방법 (0) 2014.01.03 [OpenCV] 귀찮은 경고 (Warning) 메세지 숨기기 (1) 2012.10.19 [OpenCV] 2D sequence 만들기 (0) 2011.06.30 [OpenCV] [펌] OpenCV 자주쓰는 기능들 모음 (0) 2010.09.06