Farbwechsel innerhalb einer Bildaufnahme mit OpenCV

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • 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.

  • Farbwechsel innerhalb einer Bildaufnahme mit OpenCV? Schau mal ob du hier fündig wirst!

  • TwoKo Macht das Sinn bei der *Kamera* Videocodecs anzugeben? Was passiert wenn Du mehrere Bilder abfragst? Du wertest auch `return_value` nicht aus.

    Ich würde von magischen Zahlen wie 5 und 6 abraten. Dafür gibt es Konstanten. Die benutzt Du bei den anderen Aufrufen ja auch.

    ``del`` ist weder eine Funktion, sollte also auch nicht so geschrieben, noch macht das hier irgend einen Sinn. Was man machen sollte ist den Code der die Kamera verwendet in einen ``try``/``finally``-Block zu stecken und im ``finally`` die `release()`-Methode aufrufen.

    “Dawn, n.: The time when men of reason go to bed.” — Ambrose Bierce, “The Devil's Dictionary”

  • Hallo,

    ob das Sinn macht, an den Videocodes rumzuspielen kann ich leider auch nicht sagen, die Bilder sahen aber je nachdem was ich dort einstelle unterschiedlich aus.

    - das mit dem del entferne ich und nutze nun die release() Methode

    - die sechs ersetze ich durch "CAP_PROP_FOURCC"

    - die fünf ersetze ich durch "CAP_PROP_FPS"

    vielen Dank schonmal für die Verbesserungen - das war etwas unsauber von mir hinprogrammiert. Leider hat das das Problem auch noch nicht gelöst. Gibt es noch irgendwelche Ideen?

    Viele Grüße

  • Hab eben noch was vergessen:

    der Rückgabewert ist immer true --> hab ich jetzt mal ausgegeben.

    Wenn ich mehrere Bilder hintereinander auslese passiert auch immer das Gleiche. Selbst in einer langen Schleife von Bildern hatte ich z.B. bei der maximalen Auflösung von 2592x1944 immer den Farbwechsel nach Zeile 168.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!