2011-06-30 15 views
9

Estoy trabajando en el procesamiento de archivos de imagen .raw, pero no estoy seguro de cómo se está almacenando la imagen. Cada píxel es un valor de 16 bits sin signo, con valores típicos que varían de 0 a aproximadamente 1000 (en forma de número entero). Esto no es suficiente para los valores hexadecimales, y no es RGB (0-255), así que no estoy muy seguro de qué se trata.Archivo de imagen RAW: ¿en qué formato están mis datos?

Bonificación: si tienes alguna idea sobre cómo convertir esto a escala de grises en OpenCV (o solo matemáticamente), eso también sería una gran ayuda.

+2

Bueno, ¿dónde has sacado esa ¿imagen? Porque hay cientos de formatos sin formato. –

+0

Antes que nada, no ha dicho * qué * formato (y versión), ya que hay varios. En segundo lugar, recomendaría usar una biblioteca existente. Procesar archivos de imagen RAW no es una tarea fácil ya que a menudo estos valores necesitan procesamiento adicional para producir una imagen. Los formatos pueden ser ligeramente diferentes, incluso entre diferentes modelos de cámara del mismo fabricante. Hay una razón por la cual la mayoría de estos programas/bibliotecas son propietarios y cuestan dinero. – DarkDust

+0

Obtuve estas imágenes de mi internado en una empresa pequeña, y tampoco están seguras de cómo se correlacionan estos valores con los colores. Todo lo que saben es que funciona en matlab, pero quieren que vuelva a codificarlo en C++. Estoy aprendiendo a usar OpenCV para hacer el procesamiento, pero ver la imagen en OpenCV da una imagen muy negra, con solo algunas áreas de gris oscuro y blanco. La imagen de opencv se asemeja a la imagen real, pero en tonos mucho más oscuros. – Andrw

Respuesta

10

El nombre RAW proviene del hecho de que los valores almacenados en el archivo no son valores de píxeles RGB, sino valores brutos que se midieron desde la propia cámara. Los valores tienen significado solo si usted sabe cómo funciona la cámara. Existen algunos estándares, pero en realidad, debería considerar que RAW es una colección de formatos de propiedad no documentados, mal definidos, que probablemente no coincidirán de manera intuitiva con ninguna idea que tenga sobre cómo se almacenan las imágenes.

Salida DCRaw - es el código que casi todos los programas que apoya RAW utiliza

http://www.cybercom.net/~dcoffin/dcraw/

El autor de ingeniería inversa e implementado casi todos los formatos RAW propietario - y lo mantiene hasta la fecha.

3

Las otras respuestas son correctas, RAW no es un estándar, es una abreviatura. Los CCD de cámara a menudo no tienen píxeles rojos, verdes y azules separados para cada píxel, sino que usan lo que se llama Bayer Pattern y luego solo guardan los valores de píxel para ese patrón. Entonces, necesitarás convertir ese patrón a valores de rgb.

Además, para la cuestión de bonificación, si simplemente está tratando de convertir una imagen RGB a escala de grises, o algo por el estilo, puede utilizar los operadores de la matriz, o llame convertTO

Cuestiones relacionadas