Maison  >  Article  >  développement back-end  >  Comment utiliser Python pour le suivi de cibles sur des images

Comment utiliser Python pour le suivi de cibles sur des images

王林
王林original
2023-08-18 16:03:381960parcourir

Comment utiliser Python pour le suivi de cibles sur des images

Comment utiliser Python pour effectuer un suivi de cible sur des images

Le suivi de cible est l'une des applications importantes dans le domaine de la vision par ordinateur. Il peut suivre des cibles spécifiques dans des images consécutives de données d'image. Python est un langage de programmation puissant qui fournit de nombreuses bibliothèques et outils facilitant le suivi des objectifs. Dans cet article, nous présenterons comment utiliser Python et la bibliothèque OpenCV pour effectuer le suivi d'objets sur des images.

Tout d'abord, avant de commencer à écrire du code, nous devons installer la bibliothèque OpenCV. Il peut être installé à l'aide de la commande suivante :

pip install opencv-python

Ensuite, nous écrirons du code en Python pour implémenter le suivi des objectifs. Vous trouverez ci-dessous un exemple de code simple qui montre comment utiliser OpenCV pour suivre des objets bleus dans une image.

import cv2
import numpy as np

# 定义蓝色的HSV范围
lower_blue = np.array([90, 50, 50])
upper_blue = np.array([130, 255, 255])

# 初始化摄像头
cap = cv2.VideoCapture(0)

while True:
    # 读取摄像头捕获的图像
    ret, frame = cap.read()

    # 将图像从BGR转换为HSV颜色空间
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
    
    # 创建一个掩膜,将满足蓝色范围内的像素点设置为白色(255),其余设置为黑色(0)
    mask = cv2.inRange(hsv, lower_blue, upper_blue)
    
    # 对掩膜进行模糊处理,以去除噪声
    mask = cv2.blur(mask, (5, 5))
    
    # 找到图像中的轮廓
    contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    
    if len(contours) > 0:
        # 找到最大的轮廓
        max_contour = max(contours, key=cv2.contourArea)
        
        # 计算最小外接矩形
        x, y, w, h = cv2.boundingRect(max_contour)
        
        # 在图像上绘制矩形
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
    
    # 显示图像
    cv2.imshow("Tracking", frame)
    
    # 按下ESC键退出循环
    if cv2.waitKey(1) == 27:
        break

# 释放摄像头和窗口
cap.release()
cv2.destroyAllWindows()

Dans le code ci-dessus, nous définissons d'abord la plage bleue HSV. Nous initialisons ensuite la caméra et lisons les images en boucle infinie. À chaque itération de boucle, nous convertissons l'image de BGR en HSV, créons un masque et floutons le masque pour supprimer le bruit. Ensuite, nous trouvons les contours de l'image et trouvons le plus grand contour. Nous calculons ensuite le rectangle englobant minimum et dessinons ce rectangle sur l'image. Enfin, nous affichons les résultats de la trace et quittons la boucle lorsque la touche ESC est enfoncée. Enfin, nous lâchons la caméra et fermons la fenêtre.

En utilisant le code ci-dessus, nous pouvons suivre les objets bleus dans les images capturées par la caméra. Bien sûr, si nous voulons suivre des objets d'autres couleurs, il suffit de changer la plage HSV en bleu.

Pour résumer, les bibliothèques Python et OpenCV fournissent de nombreuses méthodes pratiques pour le traitement des images et le suivi des cibles. En écrivant le code correspondant, nous pouvons facilement suivre les objets d'intérêt dans les images. J'espère que cet article pourra vous aider à vous lancer dans le suivi des objectifs et à mettre en œuvre cette tâche intéressante en Python.

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