2012-07-24 18 views
5

Estoy tratando de estirar el contraste de una imagen al rango de 0-255 usando cvNormalize. Pero cuando imprimo los valores de píxel de salida, algunos números negativos aparecen como el valor de píxel. Aprecio si me ayudas a descubrir dónde está el origen del problema. Este es el código:Contraste estirando una imagen por openCV

cvNormalize(srcImage, dstImage, 0, 255, CV_MINMAX); 

for (int pixel = 0; pixel < dstImage->height * dstImage->width; pixel++) { 
    printf("%d\t",*(dstImage->imageData + pixel)); 
} 

Respuesta

5

Debido tipo imageData 's es char* y char puede ser nagative (el rango es [-128, 127]). Pruebe a enviar contenido al unsigned char.

Ver docs.

+0

El mismo problema surge cuando lo encasillote en char sin signo: printf ("% d \ t", (uchar *) * (dstImage-> imageData + pixel)) – Mike

+0

¿qué pasa con '(uchar) * (dstImage-> imageData + pixel)) '? – ArtemStorozhuk

+0

Gracias Astor; ¡ahora funciona! – Mike

Cuestiones relacionadas