Global Shutter Kameramodul¶
Das Global Shutter Kameramodul ist ein monochromer Sensor, der schnelle Bewegungen ohne Rolling-Shutter-Artefakte erfasst. Geeignet für Hochgeschwindigkeitsverfolgung, Drohnen und Schnappschüsse für maschinelles Sehen. Das Modul wird entweder mit dem MT9V024- oder dem MT9V034-Sensor ausgeliefert.
Vollständiges Datenblatt, Fotos und Bestellinformationen finden Sie auf der Produktseite des Global Shutter Kameramoduls.
Highlights¶
752x480 Global-Shutter-Monochromsensor
80 FPS bei QVGA, 200 FPS bei QQVGA, 400 FPS bei QQQVGA
55 dB Dynamikbereich
Kompatibel mit allen modularen OpenMV Cam Basisplatinen
Verwendung¶
Graustufenvideo mit 320x240 (QVGA) streamen:
import csi
import time
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.QVGA)
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
print(clock.fps())
Der Sensor aktiviert bei niedrigeren Auflösungen automatisch Pixel-Binning — 2x bei QVGA (320x240) oder kleiner, 4x bei QQVGA (160x120) oder kleiner —, was die Auslesezeit proportional verkürzt und die Bildrate erhöht. Die Kamera muss jedoch weiterhin für das angeforderte Belichtungsfenster Licht integrieren, kombinieren Sie also die Verkleinerung der Framesize mit einer kürzeren Belichtungsobergrenze über csi.CSI.auto_exposure, um die höheren Raten tatsächlich zu erreichen (das Bild wird dunkler — planen Sie zusätzliche Beleuchtung ein):
import csi
import time
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.QQVGA)
csi0.snapshot(time=2000) # let auto-exposure settle
csi0.auto_exposure(True, exposure_us=5000) # cap exposure
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
print(clock.fps())
Der getriggerte Modus richtet die Pixelintegration exakt mit jedem csi.CSI.snapshot-Aufruf aus, sodass sich Aufnahmen mit dem Schnappschuss synchronisieren statt mit dem frei laufenden Einzelbildtakt der Kamera — nützlich zum Synchronisieren mit einem externen Ereignis oder einem anderen Sensor. Aktivieren Sie ihn über csi.CSI.ioctl mit csi.IOCTL_SET_TRIGGERED_MODE — die Bildrate sinkt auf etwa die Hälfte des frei laufenden Modus, da das Auslesen nicht mehr mit der Integration des nächsten Einzelbildes verschachtelt wird:
import csi
import time
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.VGA)
csi0.snapshot(time=2000)
csi0.ioctl(csi.IOCTL_SET_TRIGGERED_MODE, True)
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
print(clock.fps())