find_rects.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: Rechtecke finden
#
# Dieses Beispiel zeigt, wie man Rechtecke im Bild mithilfe der Quad-Threshold-
# Erkennung aus unserem April-Tags-Code findet. Der Quad-Threshold-Erkennungsalgorithmus
# erkennt Rechtecke äußerst robust und ist deutlich besser als auf der Hough-
# Transformation basierende Methoden. So kann er Rechtecke beispielsweise auch dann noch erkennen, wenn die
# Objektivverzerrung dazu führt, dass diese Rechtecke gebogen erscheinen. Abgerundete Rechtecke sind kein Problem!
# (Dadurch erkennt der Code jedoch auch Kreise mit kleinem Radius) ...

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)  # Graustufen ist schneller (max. 160x120 auf OpenMV-M7)
csi0.framesize(csi.QQVGA)
csi0.snapshot(time=2000)

clock = time.clock()

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

    # `threshold` sollte unten auf einen ausreichend hohen Wert gesetzt werden, um Rauschen herauszufiltern -
    # im Bild erkannte Rechtecke mit niedrigen Kantenbeträgen. Rechtecke
    # besitzen größere Kantenbeträge, je größer und kontrastreicher sie sind ...

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