Maison > développement back-end > Tutoriel Python > Comment mesurer les angles sur des images en utilisant Python

Comment mesurer les angles sur des images en utilisant Python

PHPz
Libérer: 2023-08-26 12:09:16
original
3001 Les gens l'ont consulté

Comment mesurer les angles sur des images en utilisant Python

Comment utiliser Python pour mesurer des angles sur des images

Présentation :
Le traitement d'image est une tâche importante dans le domaine de la vision par ordinateur, dans laquelle la mesure d'angle est une exigence courante. Dans cet article, nous utiliserons le langage Python pour mesurer les angles sur des images et démontrerons le processus à travers des exemples de code.

Étape 1 : Importer les bibliothèques nécessaires
Tout d'abord, nous devons importer les bibliothèques Python nécessaires. Parmi eux, OpenCV est une bibliothèque de vision par ordinateur largement utilisée qui fournit de nombreux outils de traitement d'images et de calcul. NumPy est une bibliothèque de calcul scientifique couramment utilisée qui constitue la base de calculs numériques efficaces.

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

Étape 2 : Charger l'image
Étape suivante, nous devons charger l'image. Utilisez la fonction imread d'OpenCV pour charger facilement des images. Utilisez le chemin de l'image comme paramètre de la fonction, et la fonction renverra un tableau NumPy représentant l'image. imread函数可以方便地加载图片。将图片路径作为函数的参数,函数将返回一个表示图片的NumPy数组。

image_path = 'path_to_your_image.jpg'
image = cv2.imread(image_path)
Copier après la connexion

步骤3: 图片预处理
在对图片进行角度测量之前,我们需要对图片进行一些预处理。为了减少噪声的影响并提高测量的准确性,我们可以将图片转换为灰度图像,并应用高斯模糊。

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
Copier après la connexion

步骤4: 边缘检测
为了测量图片中的角度,我们需要检测出图片中的边缘。这可以通过使用Canny边缘检测算法来实现。

edges = cv2.Canny(blurred, 50, 150)
Copier après la connexion

步骤5: 轮廓检测
接下来,我们需要检测出图片中的轮廓。我们可以使用OpenCV的findContours

contours, _ = cv2.findContours(edges.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
Copier après la connexion

Étape 3 : Prétraitement de l'image

Avant de mesurer l'angle de l'image, nous devons effectuer un prétraitement sur l'image. Afin de réduire l'impact du bruit et d'améliorer la précision des mesures, nous pouvons convertir l'image en une image en niveaux de gris et appliquer un flou gaussien.

best_fit_rect = None
max_area = 0

for contour in contours:
    (x, y, w, h) = cv2.boundingRect(contour)
    area = w * h
    
    if area > max_area:
        max_area = area
        best_fit_rect = cv2.minAreaRect(contour)

angle = best_fit_rect[-1]
Copier après la connexion

Étape 4 : Détection des bords

Afin de mesurer l'angle dans l'image, nous devons détecter les bords de l'image. Ceci peut être réalisé en utilisant l'algorithme de détection de bord Canny.

result_image = image.copy()
cv2.putText(result_image, f"Angle: {angle}", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
cv2.imshow("Result", result_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
Copier après la connexion
Étape 5 : Détection des contours

Ensuite, nous devons détecter les contours dans l'image. Nous pouvons utiliser la fonction findContours d'OpenCV pour réaliser cette opération.
rrreee

Étape 6 : Trouvez le rectangle le mieux ajusté

Dans la mesure d'angle, nous utilisons généralement le rectangle le mieux ajusté pour estimer l'angle. En trouvant le rectangle le mieux adapté à tous les contours, nous pouvons obtenir une valeur d'angle approximative.

rrreee🎜Étape 7 : Afficher les résultats🎜Enfin, nous pouvons afficher l'angle mesuré sur l'image et enregistrer le résultat sous une nouvelle image. 🎜rrreee🎜Résumé :🎜En utilisant le langage Python et la bibliothèque OpenCV, nous pouvons facilement effectuer des mesures d'angle sur des images. En chargeant des images, en prétraitant, en détectant les contours et en ajustant les rectangles, nous pouvons obtenir une valeur d'angle approximative et afficher le résultat sur l'image. Cette méthode a des applications pratiques dans de nombreux domaines, tels que la mesure technique, l'analyse d'images médicales, etc. 🎜🎜Bien que cet article fournisse un exemple de base de mesure d'angle, dans les applications réelles, d'autres défis et complications peuvent survenir. Selon des besoins spécifiques, nous pouvons modifier et optimiser le code en fonction de la situation réelle. 🎜

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