Estoy tratando de entender las imágenes un poco más, y estoy teniendo un gran problema. A partir del uso de matlab, tengo experiencia en el uso de imread ('test.tif') y obtener una hermosa matriz de filas y columnas, donde tienes la intensidad de cada píxel como un número entero. Entonces, una imagen de 720 x 250 dará una matriz de 720 x 250, donde cada celda contiene la intensidad del píxel, en una escala de 0 a 255 (dependiendo del tipo de datos). Entonces, 0 era negro, 255 era blanco.¿Cómo puedo simplemente cargar un tiff de escala de grises en libtiff y obtener una matriz de intensidades de píxeles?
Era tan simple y tenía tanto sentido. Ahora estoy intentando usar libtiff, y realmente estoy luchando. Quiero hacer lo mismo: acceder a esos píxeles, y simplemente no puedo obtenerlo.
Tengo el siguiente código:
int main(int argc, char *argv[]){
TIFF* tif = TIFFOpen(argv[1], "r");
FILE *fp = fopen("test2.txt", "w+");
if (tif) {
int * buf;
tstrip_t strip;
uint32* bc;
uint32 stripsize;
TIFFGetField(tif, TIFFTAG_STRIPBYTECOUNTS, &bc);
stripsize = bc[0];
buf = _TIFFmalloc(stripsize);
for(strip = 0; strip < TIFFNumberOfStrips(tif); strip++) {
if(bc[strip] > stripsize) {
buf = _TIFFrealloc(buf, bc[strip]);
stripsize = bc[strip];
}
TIFFReadRawStrip(tif, strip, buf, bc[strip]);
}
int i;
for (i=0; i<stripsize; i++) {
if (i % 960 ==0)
fprintf(fp, "\n");
fprintf(fp,"%d ", buf[i]);
}
_TIFFfree(buf);
TIFFClose(tif);
}
exit(0);
}
pero me da resultados completamente sin sentido - sólo por completo hacia fuera wacked números. No hay nada como los números que veo cuando cargo la imagen en matlab.
¿Cómo puedo acceder a los valores de píxel y mirarlos?
Muchas gracias.
Nunca utilicé libtiff, pero parece que está leyendo los datos brutos de la imagen. El formato de archivo Tiff puede contener datos de imágenes sin formato pero también formatos comprimidos. Entonces, tal vez los datos aún estén comprimidos. – Lucas
Comience prestando atención al valor de retorno de estas funciones. No tienes idea si la función falló o no. –