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!

Python et C ont chacun leurs propres avantages, et le choix doit être basé sur les exigences du projet. 1) Python convient au développement rapide et au traitement des données en raison de sa syntaxe concise et de son typage dynamique. 2) C convient à des performances élevées et à une programmation système en raison de son typage statique et de sa gestion de la mémoire manuelle.

Le choix de Python ou C dépend des exigences du projet: 1) Si vous avez besoin de développement rapide, de traitement des données et de conception du prototype, choisissez Python; 2) Si vous avez besoin de performances élevées, de faible latence et de contrôle matériel, choisissez C.

En investissant 2 heures d'apprentissage Python chaque jour, vous pouvez améliorer efficacement vos compétences en programmation. 1. Apprenez de nouvelles connaissances: lire des documents ou regarder des tutoriels. 2. Pratique: Écrivez du code et complétez les exercices. 3. Revue: consolider le contenu que vous avez appris. 4. Pratique du projet: Appliquez ce que vous avez appris dans les projets réels. Un tel plan d'apprentissage structuré peut vous aider à maîtriser systématiquement Python et à atteindre des objectifs de carrière.

Les méthodes pour apprendre Python efficacement dans les deux heures incluent: 1. Passez en revue les connaissances de base et assurez-vous que vous connaissez l'installation de Python et la syntaxe de base; 2. Comprendre les concepts de base de Python, tels que les variables, les listes, les fonctions, etc.; 3. Master Basic et Advanced Utilisation en utilisant des exemples; 4. Apprenez des erreurs courantes et des techniques de débogage; 5. Appliquer l'optimisation des performances et les meilleures pratiques, telles que l'utilisation des compréhensions de la liste et le suivi du guide de style PEP8.

Python convient aux débutants et à la science des données, et C convient à la programmation système et au développement de jeux. 1. Python est simple et facile à utiliser, adapté à la science des données et au développement Web. 2.C fournit des performances et un contrôle élevés, adaptés au développement de jeux et à la programmation système. Le choix doit être basé sur les besoins du projet et les intérêts personnels.

Python est plus adapté à la science des données et au développement rapide, tandis que C est plus adapté aux performances élevées et à la programmation système. 1. La syntaxe Python est concise et facile à apprendre, adaptée au traitement des données et à l'informatique scientifique. 2.C a une syntaxe complexe mais d'excellentes performances et est souvent utilisée dans le développement de jeux et la programmation système.

Il est possible d'investir deux heures par jour pour apprendre Python. 1. Apprenez de nouvelles connaissances: apprenez de nouveaux concepts en une heure, comme les listes et les dictionnaires. 2. Pratique et pratique: utilisez une heure pour effectuer des exercices de programmation, tels que la rédaction de petits programmes. Grâce à une planification et à une persévérance raisonnables, vous pouvez maîtriser les concepts de base de Python en peu de temps.

Python est plus facile à apprendre et à utiliser, tandis que C est plus puissant mais complexe. 1. La syntaxe Python est concise et adaptée aux débutants. Le typage dynamique et la gestion automatique de la mémoire le rendent facile à utiliser, mais peuvent entraîner des erreurs d'exécution. 2.C fournit des fonctionnalités de contrôle de bas niveau et avancées, adaptées aux applications haute performance, mais a un seuil d'apprentissage élevé et nécessite une gestion manuelle de la mémoire et de la sécurité.


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

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.

mPDF
mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

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