ir_beacon_grayscale_tracking.py
# Ce travail est publié sous licence MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Tous droits réservés.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Exemple de suivi de balise IR en niveaux de gris
#
# Cet exemple montre le suivi de balise IR en niveaux de gris avec l'OpenMV Cam.
import csi
import time
thresholds = (255, 255) # seuils pour la lumière blanche vive de l'IR.
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.VGA)
csi0.window((240, 240)) # pixels centraux 240x240 du VGA
csi0.snapshot(time=2000)
csi0.auto_gain(False) # doit être désactivé pour le suivi de couleur
csi0.auto_whitebal(False) # doit être désactivé pour le suivi de couleur
clock = time.clock()
# Seuls les blobs comptant plus de pixels que "pixel_threshold" et plus de surface que "area_threshold" sont
# renvoyés par "find_blobs" ci-dessous. Modifiez "pixels_threshold" et "area_threshold" si vous changez la
# résolution de la caméra. "merge=True" fusionne tous les blobs qui se chevauchent dans l'image.
while True:
clock.tick()
img = csi0.snapshot()
for blob in img.find_blobs(
[thresholds], pixels_threshold=200, area_threshold=200, merge=True
):
ratio = blob.w / blob.h
if (ratio >= 0.5) and (ratio <= 1.5): # filtrer les blobs non carrés
img.draw_detection(blob)
print(clock.fps())