*   >> Lecture Éducation Articles >> science >> la programmation

Composants connectés à l'aide Opencv

X_SIMPLE, cvPoint (0,0));.

Le paramètre CV_RETR_CCOMP indique à la fonction que les contours des composantes connexes devraient être extraites CV_CHAIN_APPROX_SIMPLE rapproche le contour l'un polygone et chaque contour est représenté par la liste des sommets de ce polygone Le code mis à jour est ici

Séquences et OpenCVOpenCV utilise le CvSeq type pour construire des séquences d'objets dans un CvSeq il ya 4 pointeurs:... h_next , h_prev, v_next e v_prev, ce point à d'autres séquences.

h_next et le point de h_prev à des séquences sur le même niveau et les points de v_next et v_prev à des séquences sur d'autres niveaux. Dans notre cas, ce qui est excellent: sur le premier niveau sont les contours extérieurs des composants connectés et sur le second niveau sont les contours des trous de chaque composant

Dessin des composants connectés Nous allons compléter l'exemple. la peinture des composants de connexion sur une nouvelle image. Nous utilisons la fonction cvDrawContours. Ajouter ce qui suit après le dernier code. Le code mis à jour est ici.

pour (ptr = contours; ptr = NULL;! ptr = ptr-> h_next) {color = CV_RGB de CvScalar (rand () et 255, rand () et 255, rand () et 255); cvDrawContours (cc_color, ptr, la couleur, CV_RGB (0,0,0), -1, CV_FILLED, 8, cvPoint (0,0)); }

Et qu'il! Maintenant compiler le programme et l'exécuter avec cette image. Vous devriez obtenir la première image que le résultat :) Plus de tâches avec des composants connectés Il existe d'autres tâches courantes qui sont liés aux composants connectés.

Je vais énumérer trois d'entre eux ici: obtenir la boîte de sélection d'un composant

Nous utilisons la fonction cvBoundingRect. Il reçoit un CvSeq ou CvContour et un autre paramètre qui demande si la boîte doit être recalculé

(1) ou si vous pouvez prendre la valeur de CvContour

(0). Elle renvoie une CvRect, qui contient 4 attributs: x, y, largeur e hauteur. approximative d'un composant par un polygone

Nous pouvons utiliser cvApproxPoly, qui se rapproche un contour d'un polygone.

Ceci est fait en utilisant CV_CHAIN_APPROX_SIMPLE, mais je ne sais pas si la même méthode est utilisée. Test si un point est à l'intérieur d'un appareil raccordé

Nous pouvons utiliser cvPointPolygonTest pour tester si un point est à l'intérieur un certain polygone. Puisque nous ne pouvons approcher un contour par un polygone nous pouvons utiliser cette fonction pour vérifier si un point appartient à un composa

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.