【问题标题】:Contrast stretching an image by openCV通过openCV对比拉伸图像
【发布时间】:2012-07-25 01:39:08
【问题描述】:

我正在尝试使用 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));
}

【问题讨论】:

    标签: c++ image-processing opencv


    【解决方案1】:

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

    docs

    【讨论】:

    • 当我将其类型转换为无符号字符时出现同样的问题:printf("%d\t", (uchar*)*(dstImage->imageData + pixel))
    • (uchar)*(dstImage-&gt;imageData + pixel)) 呢?
    猜你喜欢
    • 2021-08-21
    • 2013-04-03
    • 2017-07-04
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 2021-02-25
    • 2015-10-23
    相关资源
    最近更新 更多