Je suis en train de travailler sur un traitement de l'Image de la chaîne qui sépare un objet unique par la couleur et le contour, puis calcule la position en y de cet objet.
Comment puis-je calculer le centre d'un contour ou d'une zone avec OpenCV?
Opencv liens:
OriginalL'auteur Janusz | 2009-06-09
Vous pouvez obtenir le centre de masse dans la direction y, en calculant d'abord la Moments. Alors le centre de masse est donnée par
yc = M01 /M00
, où M01 et M00 sont des champs dans la structure renvoyée par les Moments appel.Si vous voulez juste le centre du rectangle de délimitation, qui est aussi facile à faire avec BoundingRect. Cela vous donne une CvRect et il vous suffit de prendre la moitié de la hauteur.
Laissez-moi savoir si ce n'est pas assez précis, j'ai un exemple de code quelque part je peux creuser pour vous.
Le centre des points d'un contour n'est pas le centre de gravité. 99% des points des contours pourraient être concentrés dans une petite zone avec une forte variation et à seulement 3 couvrir le reste d'une plus grande forme régulière.
Les moments pour un contour ne sont pas calculés par sommation sur les points des contours, mais en utilisant le Vert du théorème. Les résultats ne sont pas exactement comme le calcul du centre de masse de l'remplis de contour dans l'image, mais sont similaires, et de toute manière ne sont pas faussés par une irrégularité dans le point de contour, réparties comme vous le suggérez.
OriginalL'auteur Kiv
Je ne sais pas exactement ce que OpenCV est, mais je dirais ceci:
Sélectionnés amas de pixels a une largeur maximale à un point - w - donc permet de dire que la région a w colonnes verticales de pixels. Maintenant, je voudrais poids des colonnes en fonction du nombre de pixels de la colonne contient, et l'utilisation de ces colonne de revenants pour déterminer le Centre Horizontal de Point.
Le Même Algorithme peut aussi travailler pour le X Centre.
OriginalL'auteur wsd