2011-11-17 48 views
4

私はcvfindcontourを使って輪郭を見つけました。そして、最初の輪郭にアクセスし、それらの間のユークリッド距離を求めたいと思います。誰かがコードを教えてくれますか?opencvの輪郭/オブジェクト間の距離を見つける

CvPoint *contourPoint, *contourPoint2; 
contourPoint = (CvPoint *)CV_GET_SEQ_ELEM(CvPoint,contours,1); 
contourPoint2 = (CvPoint *)CV_GET_SEQ_ELEM(CvPoint,contours,2); 
double dis = sqrt(double((contourPoint->x - contourPoint2->x) * (contourPoint->x - contourPoint2->x) + (contourPoint->y - contourPoint2->y) * (contourPoint->y - contourPoint2->y))); 

は正しいですか?

+1

最初のC++マニュアルを読んでからOpenCV docsを読んでください。あなたの質問はあなたからの努力の欠如を意味します。 – Sam

+0

はい、私はそれをしていたはずですが、早い期限のために徹底的に勉強するのに十分な時間が与えられていないことを理解しています。しかし、私は締め切り後に詳しく説明します。あなたは今私を助けてくれますか? –

+0

contour1とcontour2はポインタなので、少なくとも「contour1-> x-contour2-> x」と書く必要があります。 – Bort

答えて

3

cvMomentsを使用して各輪郭の重心を計算し、次に2つの重心の間のEuclidean distanceを計算します。 Hereはopenframeworksの投稿です。 Hereはopencvメーリングリストの投稿です。

希望に役立ちます!

+3

重心間の距離は非常に大きくなりますが、同時に境界間の距離は非常に小さくなります。 – crenate

+0

最後の2つのリンクが死んでいます..... – AGS

関連する問題