Maison  >  Article  >  développement back-end  >  Comment utiliser Python pour effectuer le suivi des bords sur les images

Comment utiliser Python pour effectuer le suivi des bords sur les images

WBOY
WBOYoriginal
2023-08-18 20:48:301352parcourir

Comment utiliser Python pour effectuer le suivi des bords sur les images

Comment utiliser Python pour effectuer un suivi des contours sur des images

Introduction :
Dans le domaine de la vision par ordinateur et du traitement d'image, la détection des contours de l'image est une technologie fondamentale et importante. La détection des contours peut être utilisée dans de nombreuses applications telles que la segmentation d'images, la reconnaissance de cibles et la reconstruction tridimensionnelle. Cet article explique comment utiliser la bibliothèque OpenCV en Python pour implémenter le suivi des bords d'image.

  1. Préparation
    Tout d'abord, nous devons installer les bibliothèques Python et OpenCV.
    Vous pouvez installer les bibliothèques requises avec la commande suivante :
pip install opencv-python
  1. Implémentation du code
    Vous trouverez ci-dessous un exemple de code simple pour le suivi des contours sur une image donnée. Nous utiliserons l'algorithme de Canny pour implémenter la détection des contours.
import cv2

# 读取图片
image = cv2.imread('image.jpg')

# 将图像转换为灰度图
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 对灰度图进行高斯模糊
blur = cv2.GaussianBlur(gray, (5, 5), 0)

# 使用Canny算法进行边缘检测
edges = cv2.Canny(blur, 50, 150)

# 显示原始图像和边缘图像
cv2.imshow('Original Image', image)
cv2.imshow('Edge Image', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
  1. Analyse du code
    Tout d'abord, nous utilisons la fonction cv2.imread() pour lire l'image sous le chemin spécifié et renvoyer un tableau multidimensionnel (matrice de pixels) représentant l'image. Ensuite, nous convertissons l’image couleur en image en niveaux de gris, afin de simplifier le processus de calcul de l’algorithme de détection des contours. cv2.imread()函数读取指定路径下的图片,返回一个表示图像的多维数组(像素矩阵)。然后,我们将彩色图像转换为灰度图像,这样做是为了简化边缘检测算法的计算过程。
    接下来,我们对灰度图进行高斯模糊处理,这可以减少图像中的噪音,使得边缘更加清晰。我们使用cv2.GaussianBlur()函数进行高斯模糊,其中第二个参数是模糊核的大小,越大表示模糊程度越高。
    最后,我们使用cv2.Canny()函数来实现边缘检测。这个函数的参数包括低阈值和高阈值,图像中最弱的边缘会被抑制,强度介于低阈值和高阈值之间的边缘会被保留。
    最后,我们使用cv2.imshow()函数来显示原始图像和边缘图像,并通过cv2.waitKey(0)Ensuite, nous effectuons un traitement de flou gaussien sur l'image en niveaux de gris, ce qui peut réduire le bruit dans l'image et rendre les bords plus clairs. Nous utilisons la fonction cv2.GaussianBlur() pour effectuer un flou gaussien. Le deuxième paramètre est la taille du noyau de flou. Plus la valeur est grande, plus le degré de flou est élevé.
  2. Enfin, nous utilisons la fonction cv2.Canny() pour implémenter la détection des contours. Les paramètres de cette fonction incluent un seuil bas et un seuil haut. Les bords les plus faibles de l'image seront supprimés et les bords dont l'intensité se situe entre les seuils bas et haut seront conservés.
  3. Enfin, nous utilisons la fonction cv2.imshow() pour afficher l'image d'origine et l'image de bord, et fermons la fenêtre d'image en cv2.waitKey(0) en attendant saisie au clavier.
  4. Analyse des résultats
Enregistrez le code ci-dessus en tant que script Python et exécutez-le, l'image d'origine et l'image de bord seront affichées. Edge Image mettra en évidence les bords de la cible, la rendant plus accrocheuse.


Conclusion : 🎜Cet article présente comment utiliser la bibliothèque OpenCV en Python pour effectuer un suivi des bords sur des images. Le suivi des contours est l'une des technologies couramment utilisées en vision par ordinateur et en traitement d'images. Il est utile dans des applications telles que la segmentation d'images et la reconnaissance de cibles. J'espère que cet article sera utile aux débutants et inspirera l'exploration et l'apprentissage du traitement d'image. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn