Hallo zusammen,
ich bin noch Anfänger und hoffe, ihr könnt mir weiterhelfen.
Ich benutze einen Raspberry Pi 5 zusammen mit dem offiziellen Kamera-Modul 3 (V3). Mein Ziel ist es, den Live-Feed der Kamera in 1080p, mit Autofokus, im Vollbildmodus, mit 50 Fps und mit einer Verzögerung von ca. 5 Sekunden auf dem Bildschirm anzeigen zu lassen.
Ich habe dafür ein Python-Skript welches aber nur teilweise funktioniert. Das Problem ist das der Auto Fokus nicht funktioniert und das die Auflösung auch schlechter als gewollt ist
Hier ist mein aktueller Code
from picamera2 import Picamera2
import cv2
import time
from collections import deque
# Verzögerungszeit in Sekunden und FPS
DELAY_SECONDS = 5
FPS = 50
# Ringpuffer für verzögertes Bild
FRAME_BUFFER = deque(maxlen=DELAY_SECONDS * FPS)
# Kamera initialisieren
picam2 = Picamera2()
# 1080p-Auflösung und RGB888
picam2.preview_configuration.main.size = (1920, 1080)
picam2.preview_configuration.main.format = "RGB888"
picam2.configure("preview")
# Autofokus aktivieren
picam2.set_controls({"AfMode": 1})
# Kamera starten
picam2.start()
# OpenCV-Fenster im Vollbildmodus
cv2.namedWindow("Camera Preview", cv2.WND_PROP_FULLSCREEN)
cv2.setWindowProperty("Camera Preview", cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)
while True:
# Aktuelles Bild erfassen
frame = picam2.capture_array()
FRAME_BUFFER.append(frame)
# Verzögertes Bild anzeigen
if len(FRAME_BUFFER) == FRAME_BUFFER.maxlen:
delayed_frame = FRAME_BUFFER.popleft()
cv2.imshow("Camera Preview", delayed_frame)
# Beenden mit Taste 'q'
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
picam2.stop()
Falls jemand eine Idee hat, woran es liegen könnte, oder mir ein funktionierendes Beispiel zeigen kann, wäre ich super dankbar!
Am liebsten wäre mir eine Lösung in Python, aber ich bin für alles offen, was funktioniert.
Viele Grüße