When will you grow up?

13_2.형태학 연산으로 영상변환(morphology ->opening(열림) closing(닫힘)) 본문

02. Study/Computer Vision(openframworks&opencv)

13_2.형태학 연산으로 영상변환(morphology ->opening(열림) closing(닫힘))

미카이 2016. 10. 22. 15:37

앞서 포스팅에서는 기본 형태학 연산자인 팽창과 침식을 소개했다


이들로부터 다른 연산자를 정의할 수 있다. 


이번에는 열림(opening)과 닫힘(closing)연산자를 소개합니다.


고수준 형태학 필터를 적용하려면 cv::morphologyEx함수를 적절한 함수코드와 함께 사용해야 한다.


기본 침식과 팽창 연산자 측면에서 열림과 닫힘 필터를 간단하게 정의할수있다.

팽창한 영상의 침식을 닫힘으로 정의하고

침식한 영상의 팽창을 열림으로 정의한다.


닫힘필터는 구조 요소를 완전히 포함하기에 작은 홀이나 틈을 제거하며

열림필터는 여러 작은 객체를 제거한다 

구조 요소를 포함하기에 너무나 작았던 객체가 제거된다.

이러한 필터는 객체 검출에 자주 사용되며

닫힘 필터는 잘못 파편화된 객체를 더 작은 조각으로 함께 연결하는 반면에 열림 필터는 영상 잡음으로 간주되는 작은 덩어리를 제거한다. 이러한 이유로 두 필터를 순서대로 사용하는 것이 유리하다.


코드

//닫힘연산

        imshow("원본", image);

Mat element5(3,3,CV_8U,Scalar(1));

Mat closed;

morphologyEx(image, closed, MORPH_CLOSE, element5);

imshow("닫힘연산자",closed);


//열림연산

        imshow("원본", image);

Mat element5(3,3,CV_8U,Scalar(1));

Mat closed;

morphologyEx(image, closed, MORPH_OPEN, element5);

imshow("닫힘연산자",closed);


실행결과

닫힘연산자 적용

열림연산자 적용



*영상에 동일한 열림 연산자를 여러 번 적용해도 효과가 없음을 유의하자

*첫 번째 열림 필터로 채워진 홀에 동일한 필터를 더 적용해도 영상에 어떠한 변경을 가하지 않는다 수학적용어로 멱등(idempotent)라고 부른다.


인용자료

-OpenCV를 호라용한 컴퓨터 비전 프로그래밍

-http://docs.opencv.org/ opencv 도큐먼트

Comments