Maison >développement back-end >Tutoriel Python >Comment utiliser Python pour détecter les points d'angle dans les images

Comment utiliser Python pour détecter les points d'angle dans les images

WBOY
WBOYoriginal
2023-08-18 14:43:421344parcourir

Comment utiliser Python pour détecter les points dangle dans les images

Comment utiliser Python pour détecter les points d'angle dans les images

En vision par ordinateur, les points d'angle font référence à des pixels présentant d'importants changements locaux dans l'image et sont généralement utilisés pour des tâches telles que l'extraction de caractéristiques, le suivi de cible et la correspondance d'images. . Dans cet article, nous présenterons comment utiliser la bibliothèque OpenCV en Python pour détecter les points d'angle sur les images et fournirons des exemples de code correspondants.

Tout d’abord, assurez-vous que la bibliothèque OpenCV est installée. S'il n'est pas installé, vous pouvez l'installer via pip en utilisant la commande suivante :

pip install opencv-python

Ensuite, nous utiliserons la fonction cornerHarris d'OpenCV pour la détection des coins. Cette fonction étiquette chaque pixel de l'image d'entrée comme un point de coin ou hors coin. Voici un exemple de code simple :

import cv2
import numpy as np

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

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

# 转换为浮点数类型
gray = np.float32(gray)

# 进行角点检测
dst = cv2.cornerHarris(gray, 2, 3, 0.04)

# 对角点进行标记
dst = cv2.dilate(dst, None)

# 设置阈值,筛选出角点
img[dst > 0.01 * dst.max()] = [0, 0, 255]

# 显示结果
cv2.imshow('Corner Detection', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Dans l'exemple ci-dessus, nous utilisons d'abord la fonction cv2.imread pour lire une image. Ensuite, nous convertissons l’image en image en niveaux de gris, puisque la détection des coins est généralement effectuée sur les images en niveaux de gris. Ensuite, nous convertissons l'image en niveaux de gris en un type de nombre à virgule flottante et utilisons la fonction cornerHarris pour la détection des coins. Cette fonction nécessite plusieurs paramètres : l'image d'entrée, la taille du voisinage pour la détection des coins, la taille de l'ouverture de l'opérateur Sobel et les paramètres libres pour la détection des coins. La sortie de la fonction

cornerHarris est une image de type virgule flottante de la même taille que l'image d'entrée, dans laquelle les pixels des coins sont marqués. Pour mieux visualiser ces coins, nous utilisons la fonction cv2.dilate pour la dilatation et filtrons les pixels avec des valeurs de réponse de coin plus grandes par seuillage. Enfin, nous marquons ces pixels de coin en rouge.

Enfin, nous utilisons cv2.imshow pour afficher les résultats et attendons que l'utilisateur appuie sur n'importe quelle touche pour quitter via la fonction cv2.waitKey. Une fois terminé, utilisez la fonction cv2.destroyAllWindows pour fermer toutes les fenêtres.

Avec le code ci-dessus, nous pouvons détecter les points d'angle sur une image et afficher les résultats de détection dans la fenêtre. Vous pouvez ajuster les paramètres dans la fonction cornerHarris pour obtenir de meilleurs résultats en fonction de vos besoins.

Pour résumer, dans cet article, nous avons présenté comment utiliser la bibliothèque OpenCV en Python pour détecter les points d'angle sur les images et avons donné des exemples de code correspondants. Grâce à ces étapes, vous pouvez rapidement mettre en œuvre la fonction de détection de coin et utiliser cette technologie dans des applications pratiques. Dans le même temps, vous pouvez également améliorer le code en fonction de vos besoins pour vous adapter à davantage de scénarios d'application. J'espère que cet article vous sera utile !

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