Hallo,
ich wollte insbesondere Sputnik kurz meinen Dank aussprechen, weil ich ebenfalls Versuche mit einer RPi Kamera durchführe. Ich habe wenig Neues beizutragen aber vielleicht helfen meine Eindrücke doch dem Einen oder Anderen noch weiter.
Ich hatte ursprünglich vor die V4L2Grabber.cpp selbst anzupassen und glücklicherweise noch gesehen, dass dies bereits jemand gemacht hat. Das git von SputnikElf zu clonen und zu kompilieren hat auf Anhieb fehlerfrei funktioniert. Die Anpassung des Auswertebereichs bzw. der LED Zonen funktioniert zu Testzwecken prinzipiell ausreichend gut. Natürlich gibt es kleinere Schwierigkeiten, was die Überlappungsfunktion o.ä. angeht.
Am Ende bin ich bei folgenden Einstellungen gelandet, welche bei meinen Umgebungsbedingungen ein insgesamt passendes Farbbild abgeben. Diese sind rein empirisch unter Verwendung von verschiedenen Testbildern und Szenen entstanden.
User Controls
brightness 0x00980900 (int) : min=0 max=100 step=1 default=50 value=50 flags=slider
contrast 0x00980901 (int) : min=-100 max=100 step=1 default=0 value=0 flags=slider
saturation 0x00980902 (int) : min=-100 max=100 step=1 default=0 value=0 flags=slider
red_balance 0x0098090e (int) : min=1 max=7999 step=1 default=1000 value=1400 flags=slider
blue_balance 0x0098090f (int) : min=1 max=7999 step=1 default=1000 value=1400 flags=slider
horizontal_flip 0x00980914 (bool) : default=0 value=0
vertical_flip 0x00980915 (bool) : default=0 value=0
power_line_frequency 0x00980918 (menu) : min=0 max=3 default=1 value=1
sharpness 0x0098091b (int) : min=-100 max=100 step=1 default=0 value=0 flags=slider
color_effects 0x0098091f (menu) : min=0 max=15 default=0 value=0
rotate 0x00980922 (int) : min=0 max=360 step=90 default=0 value=0 flags=modify-layout
color_effects_cbcr 0x0098092a (int) : min=0 max=65535 step=1 default=32896 value=32896
Codec Controls
video_bitrate_mode 0x009909ce (menu) : min=0 max=1 default=0 value=0 flags=update
video_bitrate 0x009909cf (int) : min=25000 max=25000000 step=25000 default=10000000 value=10000000
repeat_sequence_header 0x009909e2 (bool) : default=0 value=0
h264_i_frame_period 0x00990a66 (int) : min=0 max=2147483647 step=1 default=60 value=60
h264_level 0x00990a67 (menu) : min=0 max=11 default=11 value=11
h264_profile 0x00990a6b (menu) : min=0 max=4 default=4 value=4
Camera Controls
auto_exposure 0x009a0901 (menu) : min=0 max=3 default=0 value=1
exposure_time_absolute 0x009a0902 (int) : min=1 max=10000 step=1 default=1000 value=1000
exposure_dynamic_framerate 0x009a0903 (bool) : default=0 value=0
auto_exposure_bias 0x009a0913 (intmenu): min=0 max=24 default=12 value=9
white_balance_auto_preset 0x009a0914 (menu) : min=0 max=10 default=1 value=0
image_stabilization 0x009a0916 (bool) : default=0 value=0
iso_sensitivity 0x009a0917 (intmenu): min=0 max=4 default=0 value=0
iso_sensitivity_auto 0x009a0918 (menu) : min=0 max=1 default=1 value=0
exposure_metering_mode 0x009a0919 (menu) : min=0 max=2 default=0 value=0
scene_mode 0x009a091a (menu) : min=0 max=13 default=0 value=0
JPEG Compression Controls
compression_quality 0x009d0903 (int) : min=1 max=100 step=1 default=30 value=30
Alles anzeigen
Anmerken wollte ich noch das Pixel-Binning bei der RPi Kamera und den davon abhängigen Winkel.
https://picamera.readthedocs.io/en/release-1.12/fov.html
Aus meiner Sicht hat diese Herangehensweise immer noch sehr viel Charme, gerade was die Probleme mit HDR, Kopierschutz, usw. angeht. Allerdings sind auch noch viele Schwierigkeiten zu beseitigen. Die Platzierung der Kamera ist ohne Fisheye nicht so einfach, d.h. Entzerrungsfunktionen sind für eine Anwendbarkeit in einem breiteren Userfeld, aus meiner Sicht, zwingend notwendig.
Die Prinzip bedingte Latenzzeit ist in Tests deutlich erkennbar, fällt bei der Benutzung aber deutlich weniger auf.
Viele Grüße