in_memory_basic_frame_differencing.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 für einfache Frame-Differenzbildung im Speicher
#
# Dieses Beispiel demonstriert die Verwendung von Frame-Differenzbildung mit Ihrer OpenMV Cam. Es wird
# einfache Frame-Differenzbildung genannt, weil es keine Aktualisierung des Hintergrundbilds gibt.
# Mit der Zeit kann sich das Hintergrundbild daher ändern, was zu Problemen führen kann.

import csi
import image
import time

TRIGGER_THRESHOLD = 5

csi0 = csi.CSI()
csi0.reset()  # Sensor zurücksetzen und initialisieren.
csi0.pixformat(csi.RGB565)  # oder csi.RGB565
csi0.framesize(csi.QVGA)  # oder csi.QQVGA (oder andere)
csi0.snapshot(time=2000)  # Neue Einstellungen wirksam werden lassen.
csi0.auto_whitebal(False)  # Weißabgleich ausschalten.
clock = time.clock()  # Verfolgt die FPS.

# Erstellt einen zweiten Framebuffer auf dem Heap.
extra_fb = image.Image(csi0.width(), csi0.height(), csi0.pixformat())

print("About to save background image...")
csi0.snapshot(time=2000)  # Dem Benutzer Zeit geben, sich bereitzumachen.
extra_fb.draw_image(csi0.snapshot())
print("Saved background image - Now frame differencing!")

while True:
    clock.tick()  # Erfasst die vergangenen Millisekunden zwischen den Aufrufen von snapshots().
    img = csi0.snapshot()  # Nimmt ein Bild auf und gibt es zurück.

    # Das Bild durch die Frame-Differenz "abs(NEW-OLD)" ersetzen.
    img.difference(extra_fb)

    hist = img.get_histogram()
    # Der folgende Code funktioniert, indem er den Wert des 99. Perzentils (z. B. den
    # Nicht-Ausreißer-Maximalwert) mit dem Wert des 90. Perzentils vergleicht (z. B. einen Nicht-Maximal-
    # Wert). Die Differenz zwischen den beiden Werten wächst, je mehr Pixel im
    # Differenzbild sich zu ändern scheinen.
    diff = hist.get_percentile(0.99).l_value - hist.get_percentile(0.90).l_value
    triggered = diff > TRIGGER_THRESHOLD

    print(clock.fps(), triggered)  # Hinweis: Ihre OpenMV Cam läuft etwa halb so schnell, während
    # sie mit Ihrem Computer verbunden ist. Die FPS sollten sich erhöhen, sobald die Verbindung getrennt wird.

results matching ""

    No results matching ""