Warum liest Matlab/Octave nicht die gesamten 14 Bits meiner .NEF-Rohdateien ein?

Ich verwende eine Nikon D5200. Ich beabsichtige, die mit der Kamera aufgenommenen Rohbilder bildzuverarbeiten. Aber ich stoße auf ein Problem, wenn ich die Rohbilder mit GNU Octave lese. Anstatt eine Bittiefe von 16 anzugeben (da die .NEF-Dateien mit einer Tiefe von 14 Bit aufgenommen werden), ist das Ergebnis nur ein 8-Bit-Array. Was könnte das Problem sein?

imfinfo("/media/karthikeyan/3434-3531/DCIM/100D5200/DSC_1094.NEF")

ans =

Skalare Struktur mit den Feldern:

Dateiname = /media/karthikeyan/3434-3531/DCIM/100D5200/DSC_1094.NEF

FileModDate = 10. Okt. 2016 18:10:02

Dateigröße = 26735420

Format = DCRAW

FormatVersion =

Breite = 6036

Höhe = 4020

Bittiefe = 8

Farbtyp = truecolor

Ich verwende Ubuntu 14.04, Octave 4.0.3.

Könnte mit dieser Frage zusammenhängen: photo.stackexchange.com/questions/20156/…
Was exiftool DCS_1094.NEF | grep -i bitsagt dir?
@chili555 Folgendes sagt mir Ihr Befehl -exiftool DSC_1094.NEF | grep -i bit Bits Per Sample : 14
Das deutet darauf hin, dass die RAW-Datei tatsächlich 14-Bit ist, aber dass es ein Problem mit Octave gibt.

Antworten (1)

Schauen Sie sich diese Seite an:

Tipps zum Einlesen einer Camera Raw-Datei in MATLAB

Dementsprechend lesen Sie tatsächlich das Miniaturbild und nicht die RAW-Datei selbst. Sie müssen die .NEF-Datei in .DNG konvertieren und dann eine Tiff-Klasse verwenden.

Wenn die Dateigröße 26 MB beträgt, bezweifle ich, dass er die Miniaturansicht liest.
@chili555 Ist das die komprimierte oder dekomprimierte Größe?
@MichaelClark Wie wird das überprüft? Ich denke, es ist basierend auf offiziellen technischen Spezifikationen komprimiert. Oder meintest du so etwas wie Zip?
@karthikeyan Ich weiß es nicht. Ich benutze kein MATLAB. Aber wenn es auf Ihrem Monitor angezeigt wird, muss ein komprimiertes JPEG zuerst dekomprimiert werden. Die Größe der dekomprimierten Datei basiert auf der Auflösung multipliziert mit der Bittiefe für jeden Farbkanal.
@chili555 Ich arbeite nicht mit NEF-Dateien, aber ich bin mir ziemlich sicher, dass sie sowohl ein kleines Miniaturbild als auch ein JPEG in halber oder voller Größe eingebettet haben.
@MichaelClark Das tun sie auf jeden Fall; Die oben gezeigte Dateigröße beträgt jedoch eindeutig 26 MB, was darauf hindeutet, dass nicht nur das Miniaturbild, sondern die gesamte Rohdatei gelesen wird.
Seien Sie vorsichtig mit vorgefertigter Software, die behauptet, TIFF lesen zu können – viele davon werden automatisch in 8-Bit-Daten geclippt. Je nachdem, welchen Code Sie haben, müssen Sie möglicherweise Ihren eigenen Binärdateileser "rollen" und mit dem Datenwürfel (x,y, Farbebenen) arbeiten, den Sie auf diese Weise erhalten.