median_filter.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 Medianfilter
#
# Dieses Beispiel demonstriert die Medianfilterung. Die Medianfilterung ersetzt jedes Pixel
# durch den Medianwert seiner NxN-Nachbarschaft. Die Medianfilterung eignet sich gut zum
# Entfernen von Rauschen im Bild bei gleichzeitigem Erhalt der Kanten.
import csi
import time
csi0 = csi.CSI()
csi0.reset() # Kamerasensor initialisieren.
csi0.pixformat(csi.RGB565) # or csi.GRAYSCALE
csi0.framesize(csi.QQVGA) # oder csi.QVGA (oder andere)
csi0.snapshot(time=2000) # Neue Einstellungen wirksam werden lassen.
clock = time.clock() # Verfolgt die FPS.
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 erste Argument des Medianfilters ist die Kernelgröße. Sie kann
# 0, 1 oder 2 sein für einen 1x1-, 3x3- bzw. 5x5-Kernel. Das zweite
# Argument "percentile" ist der Perzentilwert, der aus der NxN-
# Nachbarschaft ausgewählt wird. 0,5 ist der Median, 0,25 ist das untere Quartil und 0,75
# wäre das obere Quartil.
img.median(1, percentile=0.5)
print(clock.fps()) # 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.