4

我正在尝试使用 cvNormalize 将图像的对比度拉伸到 0-255 的范围内。但是当我打印输出像素值时,一些负数显示为像素值。如果您能帮助我找出问题的根源,我将不胜感激。这是代码:

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

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

1 回答 1

4

因为imageData's 的类型是char*并且char可以是负数(范围是 [-128, 127])。尝试投射到unsigned char.

请参阅文档

于 2012-07-24T17:39:08.320 回答