find_rects.py

# Esta obra está licenciada bajo la licencia MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Todos los derechos reservados.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Ejemplo de búsqueda de rectángulos
#
# Este ejemplo muestra cómo encontrar rectángulos en la imagen usando el código de detección por
# umbral de cuadriláteros de nuestro código de April Tags. El algoritmo de detección por umbral de cuadriláteros
# detecta rectángulos de forma extremadamente robusta y es mucho mejor que los métodos
# basados en la Transformada de Hough. Por ejemplo, aún puede detectar rectángulos incluso cuando la distorsión
# de la lente hace que esos rectángulos parezcan curvados. ¡Los rectángulos redondeados no son un problema!
# (Pero, dado esto, el código también detectará círculos de radio pequeño)...

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)  # la escala de grises es más rápida (160x120 máx. en OpenMV-M7)
csi0.framesize(csi.QQVGA)
csi0.snapshot(time=2000)

clock = time.clock()

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

    # el `threshold` de abajo debe establecerse en un valor lo suficientemente alto para filtrar el ruido de
    # los rectángulos detectados en la imagen que tienen magnitudes de borde bajas. Los rectángulos
    # tienen magnitudes de borde mayores cuanto más grandes y contrastados son...

    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 ""