当前位置:网站首页>29. Contour Discovery

29. Contour Discovery

2021-11-25 17:03:05 Roïka

1.Découverte de contours(find contour in your image)
  • Découverte de contours(find contour)
  • Démonstration de code
2.Introduction

La découverte de contour est une méthode de recherche de contour d'objet basée sur l'extraction de bord d'image,Ainsi, la sélection du seuil pour l'extraction de bord affecte le résultat final de la découverte de contour

3.APIIntroduction
  • Trouver un contour sur une image binaire en utilisantAPI
       
cv::findContours(
InputOutputArray binImg, // Saisissez l'image,Non0Les pixels de1,0Les valeurs de pixels de restent inchangées,8-bit
OutputArrayOfArrays contours, // Tous les objets de profil trouvés
OutputArray, hierachy // La topologie de la figure,Facultatif,L'algorithme de découverte de contour est basé sur la topologie de l'image.
int mode, // Mode de retour du profil,Renvoie généralement un arbre de contour
int method, // Méthode de découverte
Point offset = Point() // Déplacement des pixels de contour,Par défaut(0, 0)Pas de déplacement
)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

  • cv::findContoursLes données de contour trouvées sont ensuite tracées et affichées
       
drawContours(
InputOutputArray binImg, // Image de sortie
OutputArrayOfArrays contours, // Tous les objets de profil trouvés
Int contourIdx // Numéro d'index du profil
const Scalar & color, // Couleur lors de la peinture
int thickness, // Dessiner le poids de ligne
int lineType , // Type de ligneLINE_8
InputArray hierarchy, // Diagramme topologique
int maxlevel, // Nombre maximum de couches, 0 Ne dessinez que le courant ,1 Représente le dessin du contour du courant de tirage et de son remplissage
Point offset = Point() // Déplacement du profil ,Facultatif
)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

4.Code de présentation

Étapes générales:
1. Convertir l'image d'entrée en image grise cvtColor
2.UtiliserCanny Effectuer l'extraction de bord ,Obtenir une image binaire
3.UtiliserfindContoursRecherche de contours
4.UtiliserdrawContoursDessiner le contour

       
void Demo_Contours( int, void *){
vector < vector < Point >> contours;
vector < Vec4i > hierarchy;
Canny( src, dst, threshold_value, threshold_value * 2, 3, false);
findContours( dst, contours, hierarchy, RETR_TREE, CHAIN_APPROX_SIMOPLE, POint( 0, 0));

Mat drawImg = Mat::zeros( dst, size(), CV_8UC3);
for( size_t i = 0; i < contours. size(); i ++){
Scalar color = Scalar ( rng. uniform( 0, 255), rng. uniform( 0, 255), rng. uniform( 0, 255))
drawContours( drawImg, contours, i, color, 2, LINE_8, hierarchy, 0, Point( 0, 0));
}
imshow( output_win, drawImg);
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

Quand vous travaillez sur un projet: Assurez - vous d'utiliser le tableau ,Ne l'utilisez pas.vector,Ça va être lent.

5.Exemples

29.Découverte de contours_Extraction de bord

6. Extension parascolaire

La topologie de l'image

findContours()Fonctions

drawContours()Lettre

版权声明
本文为[Roïka]所创,转载请带上原文链接,感谢
https://chowdera.com/2021/11/20211125165934095y.html

随机推荐