¿Por qué Matlab/Octave no lee los 14 bits completos de mis archivos sin formato .NEF?

Estoy usando una Nikon D5200. Tengo la intención de hacer algo de procesamiento de imágenes en las imágenes en bruto tomadas con la cámara. Pero me encuentro con un problema cuando leo las imágenes en bruto usando GNU Octave. En lugar de dar una profundidad de bits de 16 (ya que los .NEF se disparan a una profundidad de 14 bits), el resultado es solo una matriz de 8 bits. ¿Cuál podría ser el problema?

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

respuesta =

estructura escalar que contiene los campos:

Nombre de archivo = /media/karthikeyan/3434-3531/DCIM/100D5200/DSC_1094.NEF

FileModDate = 10 de octubre de 2016 18:10:02

Tamaño de archivo = 26735420

Formato = DCRAW

Versión de formato =

Ancho = 6036

Altura = 4020

Profundidad de bits = 8

Tipo de color = color verdadero

Estoy usando Ubuntu 14.04, Octave 4.0.3.

Podría estar relacionado con esta pregunta: photo.stackexchange.com/questions/20156/…
¿ Qué exiftool DCS_1094.NEF | grep -i bitte dice?
@ chili555 Esto es lo que me dice su comando:exiftool DSC_1094.NEF | grep -i bit Bits Per Sample : 14
Eso sugiere que el archivo RAW es, de hecho, de 14 bits, pero que hay un problema con Octave.

Respuestas (1)

Echa un vistazo a esta página:

Sugerencias para leer un archivo RAW de cámara en MATLAB

De acuerdo con esto, en realidad está leyendo la imagen en miniatura y no el archivo RAW en sí. Debe convertir .NEF a .DNG y luego utilizar una clase Tiff.

Si el tamaño del archivo es de 26 Mb, entonces dudo que esté leyendo la miniatura.
@ chili555 ¿Es ese el tamaño comprimido o descomprimido?
@MichaelClark ¿Cómo se comprueba eso? Supongo que está comprimido según las especificaciones técnicas oficiales. ¿O quisiste decir algo como zip?
@karthikeyan No lo sé. No uso MATLAB. Pero cuando se muestra en su monitor, primero debe descomprimir un jpeg comprimido. El tamaño del archivo descomprimido se basará en la resolución multiplicada por la profundidad de bits para cada canal de color.
@ chili555 No trabajo con archivos NEF, pero estoy bastante seguro de que tienen una miniatura pequeña y un jpeg de tamaño medio o completo incrustados en ellos.
@MichaelClark Ciertamente lo hacen; sin embargo, el tamaño del archivo que se muestra arriba es claramente de 26 Mb, lo que sugiere que la lectura no es solo de la miniatura, sino de todo el archivo sin formato.
Debe tener cuidado con el software preempaquetado que afirma leer TIFF; muchos de ellos se ajustan automáticamente a datos de 8 bits. Dependiendo del código que tenga, es posible que deba "hacer rodar su propio" lector de archivos binarios y trabajar con el cubo de datos (x, y, planos de color) que obtiene de esa manera.