2010-07-16 16 views
5

Estoy tratando de procesar imágenes TIFF de un solo canal de 16 bits sin compresión con OpenCV 2.1, pero cuando llamo a cvLoadImage, aparentemente se convierten a 8 bits:OpenCV: cvLoadImage abre una imagen de 16 bits como 8-bit

IplImage* img = cvLoadImage("myImage.tif", 
     CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR); 

std::cout << img->depth << std::endl; 

impresiones

8 

Las imágenes han sido producidas por un escáner de fluorescencia que sólo genera este tipo de imágenes, y me han confirmado con un paquete de software comercial que realmente son de 16 bits.

¿Cómo puedo abrir estas imágenes y trabajar con la profundidad de bits original?

Respuesta

0

Hmm ... podría escribir su propio código para cargar la imagen. Su TIFF no comprimido, por lo que no debería ser un gran problema.

+0

Hi Utkarsh! Muchas gracias por su respuesta. He estado trabajando con OpenCV solo por un par de meses. ¿Podría darme una pista sobre cómo hacer eso? – jpromvi

+0

Cargando una imagen no es algo de OpenCV. Puede usar fopen y funciones relacionadas para abrir el archivo y cargar los píxeles de la imagen. O puedes probar libtiff. –

+0

¡Muchas gracias por su ayuda! – jpromvi

0

Tuve un problema similar (usando OpenCV 2.x en Linux, con la última libtiff). En realidad estaba usando imágenes de tiff de 12 bits, lo cual no lo hace más fácil ...

Puedo recomendar ImageMagic.

Puede comprobar que su imagen es realmente de 16 bits

pantalla myImage.tiff (clic derecho, "Información de la imagen")

Me convertí a png - que funcionó perfectamente en mi caso

convertir myImage.tiff myImage.png

1

estoy usando OpenCV 2.3.1, esta versión permite que las imágenes de apertura de 16 bits como jpromvi hechos:

IplImage* img = cvLoadImage("myImage.tif", 
     CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR); 
5

En OpenCV Cargando una imagen tif (16 bits por ejemplo) en Python debe trabajar escribiendo:

im = cv.LoadImageM("test.tif",cv.CV_LOAD_IMAGE_UNCHANGED) 
+0

+1 Funciona también para otros lenguajes OpenCV (probado con C++) – Sam

Cuestiones relacionadas