Détecteur de bord radieux à l'aide de python
La détection des bords est une technique d'analyse d'image cruciale pour la reconnaissance d'objets basée sur les contours et est vitale pour la récupération des informations d'image. Il extrait des fonctionnalités clés comme les lignes et les courbes, souvent utilisées par la vision informatique avancée et les algorithmes de traitement d'image. Un algorithme de détection de bord robuste identifie avec précision les principaux bords tout en supprimant les faux bords induits par le bruit.
Les bordsreprésentent des changements locaux importants dans l'intensité de l'image (valeurs de pixels), se produisant généralement aux limites de la région. Ce tutoriel explique l'algorithme de détection de bord radieux et son implémentation Python.
Le détecteur de bord radieux
Nommé d'après son inventeur, John F. Canny (1986), le détecteur Canny prend une image en niveaux de gris en entrée et sort une image mettant en évidence les discontinuités d'intensité (bords).
Le processus implique:
- Réduction du bruit: La convolution gaussienne lisse l'image d'entrée, réduisant le bruit.
- Calcul du gradient: Un premier opérateur dérivé met en évidence des zones à forte dérivé spatial. L'ampleur et la direction du gradient sont déterminées à l'aide des dérivés x et y, cruciaux pour l'identification de la direction des bords.
- Suppression non maximale: Cette étape atténue les bords. L'algorithme se trace le long des crêtes de gradient, en réglant les pixels non-crône à zéro, ce qui entraîne une ligne de bord mince. Cela implique de comparer le dégradé à ses voisins; Seul le gradient maximal est conservé.
- Seuil d'hystérésis: deux seuils,
t1
(supérieur) ett2
(inférieur), avect1 > t2
, suivi des bords de contrôle. Le suivi commence aux points au-dessus det1
et continue jusqu'à ce que le gradient tombe en dessous det2
. Les points ci-dessust1
sont toujours des bords; Les points ci-dessoust1
mais au-dessus det2
sont des bords uniquement s'ils sont connectés aux points au-dessus det1
.
La largeur du noyau gaussien et les seuils t1
/ t2
sont des paramètres influençant la sortie du détecteur Canny.
Implémentation Python
Deux méthodes sont montrées: en utilisant scikit-image
et OpenCV
.
en utilisant scikit-image
installer scikit-image
(par exemple, sudo apt-get install python-skimage
sur Ubuntu). La fonction canny()
(dans le module feature
) applique le détecteur Canny.
en utilisant l'échantillon d'image "Boat.png" (illustré ci-dessous):
le code:
from skimage import io, feature im = io.imread('boat.png') edges = feature.canny(im) io.imshow(edges) io.show()
La sortie (image détectée par le bord):
Les ajustements des paramètres donnent des résultats de détection de bord variables.
en utilisant OpenCV
Installez OpenCV (voir les guides d'installation pertinents pour votre système d'exploitation). La fonction Canny()
d'OpenCV effectue la détection des bords.
le code:
from skimage import io, feature im = io.imread('boat.png') edges = feature.canny(im) io.imshow(edges) io.show()
Arguments: im
(image), seuil inférieur (25), seuil supérieur (255), L2gradient=False
(utilise la norme l1). matplotlib
affiche les résultats.
La sortie (image détectée par le bord):
Conclusion
Ce tutoriel a couvert le détecteur de bord radieux et sa mise en œuvre simple en utilisant scikit-image
et OpenCV
, démontrant son efficacité dans la détection des bords.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

Utilisation de Python dans Linux Terminal ...

Fastapi ...

Comprendre la stratégie anti-rampe d'investissement.com, Beaucoup de gens essaient souvent de ramper les données d'actualités sur Investing.com (https://cn.investing.com/news/latest-news) ...
