2011-03-15 4 views
4

저는 OpenCV를 처음 사용하고 (실제로 Emgu CV C# 래퍼를 사용하고 있습니다) 어떤 객체 감지를 시도하고 있습니다.OpenCV 모양 일치

개체가 미리 정의 된 개체 집합과 일치하는지 확인하려고합니다 (정의해야 할 개체). 배경이 밝고 움직이지 않습니다. 내가 시작하는 물건은 병과 캔입니다.

현재 접근 방식은 다음과 같습니다. 이전에 찍은 배경 이미지로 absDiff를 수행하여 배경을 분리합니다. 그런 다음 4x로 확장하여 밝은 영역 (레이블에 있음)을 축소하십시오. 그런 다음 큰 블로그를 얻기 위해 이진 임계 값을 수행 한 다음이 이미지에서 윤곽선을 찾습니다. 그런 다음 가장 큰 등고선을 그려서 그 모양을 만들어 허용 된 세트에 저장하거나 허용 된 세트와 비교합니다.

현재 저는 cvMatchShapes를 사용하고 있지만 이중 반환 값은 매우 다양합니다. 나는 그것이 회전을 고려하지 않기 때문에 그것이라고 생각하고있다.

이 방법이 좋은 방법입니까? 유리 병은 가장자리가 찾기가 어렵 기 때문에 잘 작동하지 않습니다 ...

나는 haar 분류 자에 대해 읽었지만 내 작업에 과잉이라고 생각합니다.

+2

haar 분류 자도 회전을 고려하지 않습니다. – rossb83

+2

기본적으로 바라보고있는 회전 요소를 고려하면 [SIFT] (http://www.aishack.in/2010/05/sift-scale-invariant-feature-transform/) (크기 불변 특성 변환)가 일치합니다 크기/크기, 회전 (언급 한대로) 또는 이미지의 위치를 ​​고려하여 이미지 전체의 기능을 제공합니다. OpenCV에서 구현되었으므로 제공된 링크에서 찾을 수 있습니다. 희망이 도움이됩니다. – AruniRC

답변