Maison > développement back-end > Tutoriel Python > Comment utiliser Python pour détecter les bords des images

Comment utiliser Python pour détecter les bords des images

PHPz
Libérer: 2023-08-25 20:19:56
original
1444 Les gens l'ont consulté

Comment utiliser Python pour détecter les bords des images

Comment utiliser Python pour effectuer une détection des contours sur des images

Introduction : La détection des contours est une technologie couramment utilisée dans le traitement d'images, qui peut être utilisée pour détecter les bords et les contours des objets dans les images. Cet article explique comment utiliser la bibliothèque OpenCV en Python pour la détection des contours, avec des exemples de code.

1. Installez les bibliothèques requises
Pour utiliser Python pour la détection des contours, vous devez d'abord installer les bibliothèques correspondantes. Dans cet article, nous utiliserons la bibliothèque OpenCV, qui est une puissante bibliothèque de traitement d'images très pratique à utiliser en Python.

Vous pouvez utiliser la commande suivante pour installer la bibliothèque OpenCV :

pip install opencv-python
Copier après la connexion

2. Importez les bibliothèques requises
Avant d'écrire le code, nous devons importer les bibliothèques requises. En plus de la bibliothèque OpenCV, nous devons également importer la bibliothèque NumPy pour traiter les données d'image.

Voici le code pour importer la bibliothèque :

import cv2
import numpy as np
Copier après la connexion

3. Lire l'image
Avant d'effectuer la détection des contours, nous devons d'abord lire l'image à traiter. Les images peuvent être lues à l'aide de la fonction imread de la bibliothèque OpenCV. Cette fonction accepte le chemin d'accès au fichier image comme paramètre et renvoie un tableau NumPy représentant l'image. imread函数来读取图像。该函数接受图像文件的路径作为参数,并返回一个表示图像的NumPy数组。

以下是读取图像的代码:

image = cv2.imread('image.png')
Copier après la connexion

四、灰度化处理
在进行边线检测之前,我们通常需要将彩色图像转换为灰度图像。这是因为边线检测算法通常是基于灰度图像的。

可以使用OpenCV库中的cvtColor函数将图像从彩色转换为灰度。该函数接受两个参数:要转换的图像和转换模式。在本例中,我们将使用cv2.COLOR_BGR2GRAY表示从BGR色彩空间到灰度色彩空间。

以下是灰度化处理的代码:

gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
Copier après la connexion

五、边线检测
在进行边线检测之前,我们需要选择一个合适的边线检测算法。在本文中,我们将使用的是Canny边线检测算法,它是一种流行且常用的边线检测方法。

可以使用OpenCV库中的Canny函数来进行边线检测。该函数接受三个参数:灰度图像、低阈值和高阈值。边缘强度高于高阈值的像素将被认为是强边界,边缘强度低于低阈值的像素将被认为是弱边界。

以下是边线检测的代码:

edges = cv2.Canny(gray_image, 100, 200)
Copier après la connexion

六、显示结果
最后,我们可以使用OpenCV库中的imshow

Voici le code pour lire l'image :

cv2.imshow('Edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
Copier après la connexion

4. Traitement des niveaux de gris

Avant la détection des bords, nous devons généralement convertir l'image couleur en une image en niveaux de gris. En effet, les algorithmes de détection des contours sont généralement basés sur des images en niveaux de gris.

Vous pouvez convertir une image de couleur en niveaux de gris à l'aide de la fonction cvtColor de la bibliothèque OpenCV. Cette fonction accepte deux paramètres : l'image à convertir et le mode de conversion. Dans cet exemple, nous utiliserons cv2.COLOR_BGR2GRAY pour représenter l'espace colorimétrique BGR vers l'espace colorimétrique en niveaux de gris.

Voici le code pour le traitement des niveaux de gris : 🎜
import cv2
import numpy as np

# 读取图像
image = cv2.imread('image.png')

# 灰度化处理
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 边线检测
edges = cv2.Canny(gray_image, 100, 200)

# 显示结果
cv2.imshow('Edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
Copier après la connexion
🎜 5. Détection des contours 🎜Avant d'effectuer la détection des contours, nous devons choisir un algorithme de détection des contours approprié. Dans cet article, nous utiliserons l'algorithme de détection des contours Canny, qui est une méthode de détection des contours populaire et couramment utilisée. 🎜🎜Vous pouvez utiliser la fonction Canny dans la bibliothèque OpenCV pour la détection des contours. Cette fonction accepte trois paramètres : image en niveaux de gris, seuil bas et seuil haut. Les pixels dont l'intensité des bords est supérieure au seuil élevé seront considérés comme des limites fortes, et les pixels dont l'intensité des bords est inférieure au seuil bas seront considérés comme des limites faibles. 🎜🎜Voici le code pour la détection des contours : 🎜rrreee🎜 6. Afficher les résultats 🎜Enfin, nous pouvons utiliser la fonction imshow de la bibliothèque OpenCV pour afficher les résultats de la détection des contours. Cette fonction accepte deux paramètres : le nom de la fenêtre et l'image à afficher. 🎜🎜Voici le code qui affiche les résultats : 🎜rrreee🎜Exemple de code complet : 🎜rrreee🎜Résumé : 🎜Grâce à l'introduction de cet article, nous avons appris à utiliser la bibliothèque OpenCV en Python pour la détection des contours. Tout d’abord, nous devons installer les bibliothèques requises et importer les bibliothèques correspondantes. Ensuite, nous devons lire l'image et la convertir en niveaux de gris. Ensuite, nous pouvons choisir un algorithme de détection de contour approprié et effectuer une détection de contour. Enfin, nous pouvons afficher les résultats de la détection des contours. Chaque partie des étapes ci-dessus correspond à un exemple de code qui, je l'espère, sera utile à l'apprentissage et à l'application des lecteurs. 🎜

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal