log_polar_off_center.py
# Dieses Werk ist unter der MIT-Lizenz lizenziert.
# Copyright (c) 2013-2026 OpenMV LLC. Alle Rechte vorbehalten.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Beispiel für außermittige logarithmisch-polare Abbildung
#
# Dieses Beispiel demonstriert die Neuprojektion des Bildes mittels einer log-polaren
# transformation, die auf einem benutzerdefinierten Punkt zentriert ist, anstatt auf der
# Bildmitte. Dies ist nützlich, wenn die optische Achse des Objektivs nicht
# mit dem Sensormittelpunkt übereinstimmt (z. B. bei einem Fisheye-Objektiv, das mit
# einem Offset-Adapter montiert ist), sodass die Polartransformation auf den
# tatsächlichen optischen Mittelpunkt neu zentriert werden kann.
#
# Übergeben Sie die Schlüsselwortargumente `x` und `y`, um das Polarzentrum festzulegen. Beide
# verwenden standardmäßig die Bildmitte, wenn sie weggelassen werden.
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.
# Zentrieren Sie die Polartransformation 20 Pixel nach rechts und 10 Pixel nach unten
# gegenüber der Sensormitte. Passen Sie diese Werte an Ihr Objektiv an.
CENTER_X_OFFSET = 20
CENTER_Y_OFFSET = 10
clock = time.clock() # Verfolgt die FPS.
while True:
clock.tick() # Erfasst die vergangenen Millisekunden zwischen den Aufrufen von snapshots().
img = csi0.snapshot()
cx = (img.width() // 2) + CENTER_X_OFFSET
cy = (img.height() // 2) + CENTER_Y_OFFSET
img.logpolar(reverse=False, x=cx, y=cy)
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.