find_rects.py

# Questo lavoro è concesso in licenza MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Tutti i diritti riservati.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Esempio di ricerca dei rettangoli
#
# Questo esempio mostra come trovare i rettangoli nell'immagine utilizzando la sogliatura a quadrilateri
# codice di rilevamento tratto dal nostro codice per gli April Tags. L'algoritmo di rilevamento a sogliatura di quadrilateri
# rileva i rettangoli in modo estremamente robusto ed è molto migliore rispetto ai metodi basati sulla
# trasformata di Hough. Ad esempio, riesce a rilevare i rettangoli anche quando la distorsione
# dell'obiettivo fa apparire quei rettangoli piegati. I rettangoli arrotondati non sono un problema!
# (Ma, di conseguenza, il codice rileverà anche i cerchi con raggio piccolo)...

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)  # la scala di grigi è più veloce (max 160x120 su OpenMV-M7)
csi0.framesize(csi.QQVGA)
csi0.snapshot(time=2000)

clock = time.clock()

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

    # il valore di `threshold` qui sotto dovrebbe essere impostato abbastanza alto da filtrare il rumore
    # rilevato come rettangoli nell'immagine che hanno basse magnitudo dei bordi. I rettangoli
    # hanno magnitudo dei bordi maggiori quanto più sono grandi e contrastati...

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