2009-06-09 5 views

답변

10

먼저 Moments을 계산하여 y 방향으로 무게 중심을 얻을 수 있습니다. 그러면 질량 중심은 yc = M01/M00으로 주어집니다. 여기서 M01과 M00은 Moments 호출에 의해 반환 된 구조의 필드입니다.

바운딩 사각형의 중심을 원한다면 BoundingRect으로도 쉽게 할 수 있습니다. 이렇게하면 CvRect가 반환되며 높이의 절반 만 가져갈 수 있습니다.

이것이 정확하지 않은 경우 알려주십시오. 샘플 코드를 어디에서 찾을 수 있습니까?

+1

셋째, 볼록 선체와 그 순간을 계산할 수 있습니다 (사실 BoundRect의 첫 번째 내부 단계 임). 넷째, 윤곽선 픽셀 만의 질량 중심 (즉, 윤곽선 위에 정확히 놓여있는 픽셀)을 계산할 수 있습니다. 이러한 모든 메소드는 * 다른 * 값을 제공하며, 그 유용성은 애플리케이션의 특정 요구에 따라 달라집니다. – rwong

+1

윤곽선의 중심이 무게 중심이 아닙니다. 윤곽 점의 99 %는 변동이 큰 작은 영역에 집중 될 수 있으며 나머지 3 개는 더 큰 일반 모양을 덮을 수 있습니다. –

+0

윤곽의 모멘트는 등고선 점을 합하여 계산하지 않고 Green의 정리를 사용하여 계산합니다. 결과는 이미지의 채워진 윤곽선에 대한 질량 중심을 계산하는 것과 정확히 같지는 않지만 비슷하며 어떤 식 으로든 윤곽선 점의 불규칙성에 의해 왜곡되지 않습니다. – buzjwa

-2

내가 정확히 OpenCV의가 무엇인지 모르겠지만, 나는이 제안 :

픽셀의 선정 클러스터가있다 한 점에서 최대 너비 - w - 그래서 영역에 세로 열 픽셀이 있다고 가정합니다. 이제는 열이 얼마나 많은 픽셀을 포함하는지에 따라 열의 무게를 늘리고 가로 세로 중심을 결정할 때이 세로 열을 사용합니다.

동일한 알고리즘이 X 센터에서도 작동 할 수 있습니다.

+0

여러 가지 내장 방법이있을 때 직접 해보지 마십시오. – Kiv