Hallo,
ich verzweifele gerade am Auslesen von meiner Kamera per OpenCV (5MP 1080P OV5647). Lese ich die Kamera mittels raspistill aus ergibt sich ein ein schön klares Bild für alle möglichen Auflösungen. Lese ich die Kamera mittels openCV aus, ergibt sich ein qualitativ schlechteres Bild bei gleicher Einstellung der Auflösung. Und was mich sehr wundert ist, dass sich die Farbkanäle immer an der selben Stelle irgendwie ändern (siehe Foto - der untere Bereich ist korrekt dargestellt).
Welche Einstellungen können zu solch einem Verhalten führen? Sind irgendwelche Buffer zu klein? Denn bei niedrigen Auflösungen (die von der Anzahl der Pixel her in den unteren Bereich passen würden, tritt dieser Effekt nicht auf).
Ich habe ein bisschen mit Codecs rumgespielt, aber bisher erfolglos. Nachfolgend ist der Code.
Vielen Dank für jeden Hinweis.
import cv2
IMG_WIDTH = 1920
IMG_HEIGTH = 1080
camera = cv2.VideoCapture(0)
codec = cv2.VideoWriter_fourcc(*'h264')
camera.set(6, codec)
camera.set(cv2.CAP_PROP_FRAME_WIDTH, IMG_WIDTH)
camera.set(cv2.CAP_PROP_FRAME_HEIGHT, IMG_HEIGTH)
camera.set(5, 30) #framerate
return_value, image = camera.read()
cv2.imwrite('opencvImg.png', image)
del(camera)
Alles anzeigen