2014-02-17 2 views
0

이미지 : http://answers.opencv.org/upfiles/1392627645523812.jpg 모두 안녕하세요,
저는 두 윤곽을 비교하고 싶습니다 & 두 윤곽 사이의 유사성을 찾기 위해 그들 사이의 hausdorff 거리를 찾으십시오. 왼쪽의 비슷한 윤곽선을 찾기 위해 오른쪽의 템플리트 윤곽선을 참조 템플리트 윤곽선으로 가져 가면 장면 윤곽선 점이 템플리트 윤곽선 점에서 변환되므로 오류가 발생합니다. 사실 저는 두 이미지에서 등고선 점을 직접 가져갑니다. 보시다시피, 윤곽 영역은 주변 윤곽에 영향을 미치기 때문에 윤곽 영역 만자를 수 없습니다.서로의 위치에서 번역 된 두 윤곽을 비교하는 방법은 무엇입니까?

장면 이미지 크기로 빈 이미지를 만들고 장면 이미지 위에 내 서식 파일 윤곽선을 장면 이미지 위로 슬라이드시켜야합니까? 아니면 다른 더 나은 방법이 있습니까? 감사

답변

1

당신은 다음과 같은 작업을 수행 할 수 Balaji.R :

  1. 원본 이미지의 윤곽을 감지합니다.
  2. 각 윤곽에 대한 윤곽 순서/점을 가져옵니다. 예를 들어 첫 번째 시작 지점이 점 1, 점 2, 점 3 등으로 등고선 1에 저장되었다고 가정 해 봅니다 (대략적인 예).
  3. 그런 다음 각 컨투어의 최소 및 최대 x 및 y 좌표를 찾습니다.
  4. 그럼

    regionOfInterest = 사각형 (MIN_X, Min_Y에, 폭, 높이) templateImage = originalImage (regionOfInterest)에 의해 각각의 형상에 대한 개별 화상을 생성하고 width = max_x - min_xheight = max_y - min_y 각 윤곽선

  5. ;

  6. 이제 matchTemplate()을 수행하십시오. (각 등고선에서 생성 된) 각 개별 템플릿 이미지와 원본 이미지 사이에서 최대 좌표의 위치를 ​​찾을 수 있습니다.

  7. 템플릿 이미지의 축척이 달라질 수 있다고 생각되는 경우 템플릿 이미지에서 pryUp() 또는 pryDown() 수 있습니다.
+0

빠른 답장을 보내 주셔서 감사합니다. 나는 또한 같은 논리에서 일하고있다 ... –

관련 문제