• Herzlich willkommen im "neuen" DSLR-Forum!

    Wir hoffen, dass Euch das neue Design und die neuen Features gefallen und Ihr Euch schnell zurechtfindet.
    Wir werden wohl alle etwas Zeit brauchen, um uns in die neue Umgebung einzuleben. Auch für uns ist das alles neu.

    Euer DSLR-Forum-Team

  • In eigener Sache!

    Liebe Mitglieder, liebe Besucher und Gäste
    ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
    Bitte hier weiterlesen ...

  • DSLR-Forum Fotowettbewerb neu erfunden!
    Nach wochenlanger intensiver Arbeit an der Erneuerung des Formates unseres internen Fotowettbewerbes ist es Frosty als Moderator
    und au lait als Programmierer gelungen, unseren Wettbewerb auf ein völlig neues Level zu heben!
    Lest hier alle Infos zum DSLR-Forum Fotowettbewerb 2.0
    Einen voll funktionsfähigen Demowettbewerb kannst du dir hier ansehen.
  • Neuer Partner: AkkuShop.de
    Akkus, Ladegeräte und mehr (nicht nur) für Digitalkameras und Drohnen
  • Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2024
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien der Eigenmarken "Upscreen", "Brotec", "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Stimmt ab über die Sieger des DSLR-Forum Fotowettbewerbs März 2024.
    Thema: "Arbeitsmittel"

    Nur noch bis zum 31.03.2024 23:59!
    Jeder darf abstimmen!
    Zur Abstimmung und Bewertung hier lang
  • Frohe Ostern!

    Wir wünschen allen DSLR-Forum Nutzern, ihren Familien und Freunden sowie unseren Sponsoren und Partnern und deren Familien und Freunden ein frohes Osterfest.

    Euer DSLR-Forum Team!
WERBUNG

RAW Histogramm Berechnung

c_joerg

Themenersteller
Hallo,

ich versuche mich gerade in der Berechnung eines RAW Histogramms. Im Wesentlichen um ein größeres Verständnis von RAW Daten zu bekommen.

Das Ganze mache ich mit der Skriptsprache MATLAB. Grundsätzlich sollte das aber auch mit dem freien GNU Octave funktionieren.

Die RAW Daten wandle ich mit dcraw in ein lineares 16-bit TIF ohne Interpolation um, damit ich die Daten einlesen kann. Für die Metadaten benutze ich das EXIFTOOL(z.B. Blacklevel).

Das funktioniert soweit auch ganz gut. Ich komme auf die gleichen Ergebnisse wie RawDigger.

Nur eine Frage habe ich noch. Wie komme ich an den Wert für 0EV (an der EV Achse)?
Bei der EOS M3, M5, 6D und G1x liegt der immer bei 2048.

Grüße Jörg
 

Anhänge

Hallo Jörg

Ich weiss nicht, ob ich deine Frage richtig verstehe,
ich versuche dennoch zu antworten.

Um dein RAW Histogramm zu eichen, schlage ich folgendes vor.
Du fertigst ein um mehrere Blenden überbelichtetes Bild eines weissen Papiers im RAW Format an.
Mit RAW Digger (bei EV0 = 2048) kannst du dann sehr genau sehen um wieviele Blenden du nach ETTR mit der entsprechenden Kamera überbelichten kannst. Das Histogramm ist auf der rechten (hellen) Seite klar erkennbar abgeschnitten.
Beachte:
Bei EV-scale X-Axis
muss der obere Wert bei etwa 3 EV, oder höher stehen, dies damit RAW Digger das Histogramm rechts nicht beschneidet!

Dann betrachtest du dieses überbelichtete RAW mit deinem RAW Histogramm.
EV0 befindet sich dann um die oben festgestellten Blenden weiter links, wie das abgeschnittene rechte Ende des Histogramms.

Da ich meistens nach ETTR belichte habe ich für meine Nikon D810 den EV0 Wert in RAW Digger von 2048 auf 15782 erhöht, denn mit der Nikon D810 kann man um maximal 3 Blenden überbelichten.
Der EV0 Wert liegt dann bei RAW Digger 3 Blenden höher
und ich belichte dann auf etwa -1.5 bis maximal -1 EV.
Bei der Konvertierung in das 16Bit TIF Format, nehme ich dann die Helligkeit um mindestens 3 Blenden zurück.

Ich hoffe ich habe eine passende Antwort auf deine Frage gegeben.

Kurt
 
Zuletzt bearbeitet:
Hallo Kurt,

Ich weiss nicht, ob ich deine Frage richtig verstehe,

Noch nicht so ganz…


Du fertigst ein um mehrere Blenden überbelichtetes Bild eines weissen Papiers im RAW Format an.

Da kann ich genau sagen was da raus kommt. Aus 14Bit Full Scale ergibt sich 2ˆ14-1=16383.
16383-Blacklevel (2048) ist dann 14335, also genau das Maximum aus dem grünen Kanal, der leicht geklippt ist.


Mit RAW Digger (bei EV0 = 2048)
Das ist eigentlich meine Frage. Warum ist EV0 = 2048. Ein reinen default Wert? Der kommt also nicht aus einem Wert in den RAW Daten?

den EV0 Wert in RAW Digger von 2048 auf 15782 erhöht,
Das war mit gar nicht bewusst, dass man diesen Wert einfach verschieben kann.


Da ich meistens nach ETTR belichte habe ich für meine Nikon D810 den EV0 Wert in RAW Digger von 2048 auf 15782 erhöht,

Wie kommst du auf 15782?
16383 – 15782 = 601. Ist das der Blacklevel der Nikon D810?

Ich hoffe ich habe eine passende Antwort auf deine Frage gegeben.

Nicht ganz aber zumindest erst mal weiter geholfen…
 
Der blacklevel steht in der RAW Datei, findest Du im dcraw source code.

dcraw ist aber tot. Kameras nach 2015 sind nicht mehr unterstützt.

LG,
Karl-Heinz
 
Der Default EV0 Wert bei RAW Digger (soweit ich das weiß) ist immer drei EV von Rechts nach Links bezogen auf die Bit Tiefe des RAW´s.

Also ein 16 Bit RAW hat als Default EV0 Wert immer 8192, ein 14 Bit RAW hat 2048 und ein 12 Bit RAW hat einen EV0 Wert von 512.


Gruß Gerd
 
Das Ganze mache ich mit der Skriptsprache MATLAB. Grundsätzlich sollte das aber auch mit dem freien GNU Octave funktionieren.

Die RAW Daten wandle ich mit dcraw in ein lineares 16-bit TIF ohne Interpolation um, damit ich die Daten einlesen kann.

Deutlich eleganter gehts m.E. mit dem freien Python. Das hat mit dem Modul Rawpy einen libraw-Port, mit dem man das Raw direkt einliest. Das Pylab-Modul bietet dann ähnliche Anzeigemöglichkeiten wie Matlab.

Nur eine Frage habe ich noch. Wie komme ich an den Wert für 0EV (an der EV Achse)?
Bei der EOS M3, M5, 6D und G1x liegt der immer bei 2048.

Mach eine Belichtungsreihe von einer Graufläche mit definierter Helligkeit. Die kannst du dann zusätzlich verwenden, um die Dynamik deiner Kamera zu berechnen. Unten ein Beispiel:
 

Anhänge

Zuletzt bearbeitet:
Also ein 16 Bit RAW hat als Default EV0 Wert immer 8192, ein 14 Bit RAW hat 2048 und ein 12 Bit RAW hat einen EV0 Wert von 512.
So konnte ich das bisher auch sehen…

Deutlich eleganter gehts m.E. mit dem freien Python. Das hat mit dem Modul Rawpy einen libraw-Port, mit dem man das Raw direkt einliest. Das Pylab-Modul bietet dann ähnliche Anzeigemöglichkeiten wie Matlab.

Einfacher und eleganter ist immer das, was man schon hat und seit Jahren benutzt. Und zwei Aufrufe in MATLAB sind sicherlich nicht umständlich.

Vermutlich könnte ich die libraw auch direkt in MATLAB einbinden. Aber auch die scheint ja kein CR3 zu unterstützen. Ist für mich aber auch zweitrangig.

Mein gesamter Timelapse Workflow geht über die MATLAB Image Processing Toolbox. Ausrichten von Bildern, Deflickern (ähnlich LRTimelapse) und gleitende Median und Mittelwertberechnung.

Die kannst du dann zusätzlich verwenden, um die Dynamik deiner Kamera zu berechnen. Unten ein Beispiel:

Mir geht es im Wesentlichen um das Verständnis der RAW Informationen, nicht um die Entwicklung eines eleganten Tools.

Die Bestimmung der Dynamik meiner Kameras geht mit CHDK viel eleganter. Einfache ein Lua Script auf der Kamera starten, das fährt dann automatisch den kompletten Dynamik der Kamera ab und schreibt dann die RAW basierten Ergebnisse in eine CSV Datei die ich direkt in Excel/MATLAB einlesen kann.
 
WERBUNG
Zurück
Oben Unten