RAW Daten aus JPEG auslesen

  • Hallo Leute,

    also ich wollte mit der picam ein Bild machen. Speicher das dann als JPEG und möchte jetzt gerne die RAW Daten speichern und als array weiterverarbeiten.

    Kleiner Ausschnitt meines Programms:

    os.system ("sudo raspistill -o %s -r -ISO %d -ss %d" % (FILENAME,ISO,SS)) #schreibt Befehl in die Shell

    f=open(FILENAME) #liest Bild ein
    x=os.stat(FILENAME) #Größe des Bildes
    y=x.st_size #Größe in Bytes

    So jetzt hab ich am Ende die größe in Bytes. Jetzt möchte ich aber nur die letzten 10237440 Bytes dieser Datei speichern und weiterverarbeiten.
    Könnt ihr mir da biite helfen?

    Ich hab mir gedacht wenn ich die Größe haben kann ich ja 10237440 Bytes von Ende zurück gehen und das dann abspeichern.
    Bräuchte da aber ein wenig Hilfe im Code.

    Danke schonmal

  • ChrisvA: der PI packt beim Bild-capturn die RAW-Bayer-Daten einfach hinter das JPEG. Was ich auch gerade erst gelernt habe...

    Teemo: die Methode die du suchst heisst "seek". Damit kannst du zB erst einmal an das Ende springen, und danach um deine gewuenschte Anzahl Bytes nach hinten.

    Ein bisschen googeln foerdert aber auch schon fertige Rezepte die ohne die bloeden os.system-calls auskommen zutage: http://picamera.readthedocs.io/en/release-1.1…html#bayer-data

  • @__deets__

    danke aber die seite kenn ich schon :D

    das problem ist hier dass das bild mit picamera aufgenommen wird was mit der picamp v2 nicht funktioniert.

    das mit seek werde ich mir jetzt mal angucken, danke. Aber wie muss ich denn das Bild öffnen um so und so viel Bytes weiter zu springen? Das heißt ich müsste das jpeg ja binär öffnen oder wie?

    Einmal editiert, zuletzt von Teemo (19. Juni 2016 um 14:52)

  • Unter unixoiden Systemen gibt es eh nur binaeres oeffnen von Dateien. Ein simples

    Code
    with open(filename) as inf:
            inf.seek(offset)

    genuegt.

  • Danke für deine Hilfe.

    also reicht das so aus? jetzt liest er mir die letzten 10237440 Byte aus und ich hab sie in couple_bytes gespeichert und kann sie weiter verarbeiten?

  • Sollte so sein, ja. Versuch macht kluch wie ich hier schon wiederholt gesagt habe... kann ja nix kaputt gehen. Wenn ich die Doku richtig ueberflogen habe, dann sollten die ersten 4 Bytes "BRCM" sein - dann weisst du das du richtig bist. Und danach greift mE doch das, was ich oben schon gepostet habe, um das in RGB-Werte zu wandeln.

Jetzt mitmachen!

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