2012-07-24 51 views
5

我試圖用cvNormalize將圖像的對比度拉伸到0-255的範圍。但是當我輸出輸出像素值時,一些負數出現爲像素值。我很感激你能否幫助我找出問題的根源在哪裏。這是代碼:通過openCV拉伸圖像的對比度

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

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

回答

5

由於imageData的類型是char*char可以是性否定(範圍爲[-128,127])。嘗試鑄造到unsigned char

請參閱docs

+0

同樣的問題出現時,我將它轉換爲unsigned char:printf(「%d \ t」,(uchar *)*(dstImage-> imageData + pixel)) – Mike 2012-07-24 17:45:40

+0

'(uchar)*(dstImage-> imageData +像素))'? – ArtemStorozhuk 2012-07-24 17:54:25

+0

謝謝你Astor;現在它工作! – Mike 2012-07-24 18:04:36