2012-07-24 15 views
5

Sto provando ad estendere il contrasto di un'immagine all'intervallo 0-255 utilizzando cvNormalize. Ma quando stampo i valori dei pixel di uscita, alcuni numeri negativi vengono visualizzati come valore del pixel. Apprezzo se mi aiuti a scoprire dov'è l'origine del problema. Questo è il codice:Contrasto che allunga un'immagine con openCV

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

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

risposta

5

Poiché tipo imageData s' è char* e char può essere nagative (intervallo è [-128, 127]). Prova a trasmettere su unsigned char.

Vedere docs.

+0

Lo stesso problema si verifica quando l'ho stampato a caratteri non firmati: printf ("% d \ t", (uchar *) * (dstImage-> imageData + pixel)) – Mike

+0

cosa dire '(uchar) * (dstImage-> imageData + pixel)) '? – ArtemStorozhuk

+0

Grazie Astor; ora funziona! – Mike

Problemi correlati