find_circles.py

# Dieses Werk ist unter der MIT-Lizenz lizenziert.
# Copyright (c) 2013-2023 OpenMV LLC. Alle Rechte vorbehalten.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Beispiel: Kreise finden
#
# Dieses Beispiel zeigt, wie man Kreise im Bild mithilfe der Hough-
# Transformation findet. https://en.wikipedia.org/wiki/Circle_Hough_Transform
#
# Beachten Sie, dass die Methode find_circles() nur Kreise findet, die sich vollständig
# innerhalb des Bildes befinden. Kreise, die über das Bild/die ROI hinausgehen, werden ignoriert ...

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)  # Graustufen ist schneller
csi0.framesize(csi.QQVGA)
csi0.snapshot(time=2000)

clock = time.clock()

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

    # Kreisobjekte besitzen vier Werte: x, y, r (Radius) und magnitude. Die
    # magnitude gibt die Stärke der Erkennung des Kreises an. Höher ist
    # besser ...

    # `threshold` steuert, wie viele Kreise gefunden werden. Erhöhen Sie den Wert,
    # um die Anzahl der erkannten Kreise zu verringern ...

    # `x_margin`, `y_margin` und `r_margin` steuern das Zusammenführen ähnlicher
    # Kreise in x-, y- und r-Richtung (Radius).

    # r_min, r_max und r_step legen fest, welche Radien von Kreisen getestet werden.
    # Eine Verringerung der Anzahl getesteter Kreisradien bringt einen großen Leistungsgewinn.

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