find_circles.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 cerchi
#
# Questo esempio mostra come trovare i cerchi nell'immagine utilizzando la trasformata di
# Hough. https://en.wikipedia.org/wiki/Circle_Hough_Transform
#
# Nota: il metodo find_circles() troverà solo i cerchi che sono completamente
# all'interno dell'immagine. I cerchi che escono dall'immagine/ROI vengono ignorati...

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)  # la scala di grigi è più veloce
csi0.framesize(csi.QQVGA)
csi0.snapshot(time=2000)

clock = time.clock()

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

    # Gli oggetti cerchio hanno quattro valori: x, y, r (raggio) e magnitudo. La
    # magnitudo è la forza del rilevamento del cerchio. Più alta è,
    # meglio è...

    # `threshold` controlla quanti cerchi vengono trovati. Aumentarne il valore
    # per diminuire il numero di cerchi rilevati...

    # `x_margin`, `y_margin` e `r_margin` controllano l'unione dei
    # cerchi simili nelle direzioni x, y e r (raggio).

    # r_min, r_max e r_step controllano quali raggi di cerchi vengono testati.
    # Ridurre il numero di raggi di cerchio testati offre un notevole aumento delle prestazioni.

    for c in img.find_circles(
        threshold=2000,
        x_margin=10,
        y_margin=10,
        r_margin=10,
        r_min=2,
        r_max=100,
        r_step=2,
    ):
        img.draw_circle(c, color=(255, 0, 0))
        print(c)

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

results matching ""

    No results matching ""