2011-11-14 7 views
1

OpenCV를 사용하여 사용자 보조 가장자리 감지를 구현하려고합니다.이미지의 가장자리와 벡터의 상관 관계

다각형 모양을 찾는 이미지가 있다고 가정 해 보겠습니다. 토론을 위해 그림에서 직사각형 테이블의 윗부분을 찾아야한다고 가정 해 봅시다. 사용자가 테이블의 네 구석을 클릭하면 사물을 좁힐 수 있습니다. 이 네 점을 연결하면 다각형 또는 네 개의 벡터가 생깁니다. 그러나 사용자는 그 코너를 클릭 할 때 그다지 정확하지 않습니다. 그래서 이미지의 가장자리 정보를 사용하여 정확도를 높이고 싶습니다.

나는 이미지의 중요한 가장자리를 결정하기 위해 상당히 높은 임계 값을 가진 Canny 엣지 디텍터를 사용하고 있습니다. (정확하게 말하자면, 스케일링, 블러 링, 그레이 스케일로 변환 한 다음 Canny를 실행). 이미지의 가장자리와 벡터의 정렬 여부는 어떻게 계산합니까? "정렬"을 계산하는 방법이 있다면, 내 과잉 알고리즘은 네 개의 엣지 지점의 위치를 ​​어지럽히고, 최적을 찾을 때까지 이미지의 가장자리와 폴리곤의 전체 "정렬"을 계산합니다.

"정렬"메트릭을 정의하고 계산하는 좋은 방법은 무엇입니까?

답변

0

FindContours를 사용하여 테이블이나 기타 윤곽을 감지하려고 할 수 있습니다. 그런 다음 사용자 입력 지점에서도 등고선을 작성하십시오. 이 후 윤곽을 비교할 수있는 윤곽선 순간을 읽을 수 있습니다. 이미지의 모든 윤곽선을 사용자 지점에서 만들어진 윤곽선과 비교 한 다음 가장 가까운 일치점을 선택할 수 있습니다.

+0

불행히도 FindContours는 내 이미지에서 아주 좋은 결과를 산출하지 못합니다. 결과 모양이 불규칙 (즉, 멋진 직사각형이 아님)하기 때문에 사용자 입력을 사용하여 가장 좋은 것을 선택해도 모양이 잘리지 않습니다. 팁을 가져 주셔서 감사합니다. – Niels