find_rects.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 détection de rectangles
#
# Cet exemple montre comment détecter des rectangles dans l'image à l'aide du seuil de quadrilatères
# code de détection issu de notre code des April Tags. L'algorithme de détection par seuil de quadrilatères
# détecte les rectangles de façon extrêmement robuste et est bien meilleur que les méthodes
# basées sur la transformée de Hough. Par exemple, il peut toujours détecter des rectangles même lorsque la distorsion
# d'objectif fait paraître ces rectangles courbés. Les rectangles arrondis ne posent aucun problème !
# (Mais, de ce fait, le code détectera aussi de petits cercles de faible rayon)...

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)  # les niveaux de gris sont plus rapides (160x120 max sur OpenMV-M7)
csi0.framesize(csi.QQVGA)
csi0.snapshot(time=2000)

clock = time.clock()

while True:
    clock.tick()
    img = csi0.snapshot()

    # `threshold` ci-dessous doit être réglé sur une valeur suffisamment élevée pour filtrer le bruit
    # rectangles détectés dans l'image qui présentent de faibles magnitudes de contour. Les rectangles
    # ont des magnitudes de contour plus élevées lorsqu'ils sont plus grands et plus contrastés...

    for r in img.find_rects(threshold=10000):
        img.draw_rectangle(r, color=(255, 0, 0))
        for p in r.corners:
            img.draw_circle((p[0], p[1], 5), color=(0, 255, 0))
        print(r)

    print("FPS %f" % clock.fps())

results matching ""

    No results matching ""