2013-06-22 1 views
0

OpenCV를 사용하기 시작했습니다. 내 목표는 원과 그 중심을 감지하는 것이고, 나는 화질 변환을 사용했습니다. 해상도 640x480의 웹캠을 사용하고 있습니다.
작동하지만 원은 계속 변경됩니다. 그것의 위치, 그것을 더 잘 설명하기 위해 나는 화면을 움켜 잡았다. you tube https://www.youtube.com/watch?v=6EGePHkGrok
여기 코드 http://pastebin.com/zRG4Yfzy가있다. 나는 약간 지저분하다는 것을 알고있다.
먼저 전체 비디오가 표시됩니다. 카메라가 안정화되면 ESC 키를 누르면 ROI 250x250에서 처리가 시작됩니다.
나는 hough transform과 blur의 양을 변경하기 위해 몇개의 trackbars를 추가했다. blur amount를 변경해도 문제가 해결되지 않는다.
원을 어떻게 안정화 시키는가? 또한 카메라가 움직이지 않아서 추적 할 필요가 없습니다. 아니면 완전히 새로운 방법을 채택해야합니까?
내 이해에 따르면 필자는 일종의 필터를 적용해야합니다.
개체의 원형 윤곽이 많지만 모두 가운데가 동일하므로 모든 원형 윤곽이 정밀하게 감지됩니다.

추 신 : 저는 이미지 처리 전문가가 아닙니다. 다양한 사이트 및 서적의 코드를 패치했습니다.opencv를 사용하여 비디오 스트림에서 원을 안정화하는 방법은 무엇입니까?

답변

1

허프 (Hough) 변환은 오류가 발생하기 쉬운 것으로 알려져 있습니다.

귀하의 경우, 이미지에 윤곽선이 있고 원형으로 필터링 할 수 있습니다.

1- 계조

2 저역 통과 필터 (가우스 블러)

-3- 영리한 에지 검출

4- 윤곽을 찾아서 그 부분을 표시.

5 등고선에 원을 그리는 데 필요한 분을 5 분 정도 그리십시오.

6- 윤곽 영역에 가장 가까운 원을 둘러싸고있는 최소 면적을 갖는 윤곽을 선택합니다.

+0

moments F3 유형 "질량 센터"를 사용하여 윤곽의 질량

7- 찾기 센터는이를 시도하고 도와의 결과, 감사를 게시 할 예정입니다. –

+0

와우 .. 덕분에 그 동그라미보다 훨씬 잘 작동, 결과는 https://www.youtube.com/watch?v=jYx-snPt3aI입니다.하지만 약간의 조정이 필요합니다 .. 감사합니다 :) –

+0

Np, 그리고 개선 사항으로 opencv의 [blobdetector class] (http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#simpleblobdetector)를 사용할 수 있습니다. 3 ~ 7 단계 대신 :) 최근에이 클래스와 함께 작업했지만, 무차별 대입 시도보다 더 빠르며 여러 종류의 필터링을 적용 할 수 있습니다. – baci