使用OpenCV在JPEG中获取像素RGB值未获得正确的值

时间:2013-10-13 16:48:18

标签: c++ opencv rgb pixel

我试图从带有白色背景和单色(RED)图形的JPEG图像中获取像素。理想情况下,它应返回RGB值,如R = 255,G = 0和B = 0。然而,它没有返回那些并返回一些奇怪的值。

样本测试图像可以在下面的路径中找到。它是BMP,但在上传期间由托管网站转换为PNG: http://img546.imageshack.us/img546/9727/71rb.png

以下是代码段:

    IplImage* org = NULL;
    org = cvLoadImage("abc.bmp", CV_LOAD_IMAGE_UNCHANGED);
    double red, green, blue;
    int newX=241, newY=99;

    CvScalar current_pixel = cvGet2D(org, newX, newY);

    blue  = current_pixel.val[0];
    green = current_pixel.val[1];
    red   = current_pixel.val[2];

//打印像素值,结果为红色= 255,绿色= 255,蓝色= 255,不正确。

请帮忙,让我知道这种方法有什么问题。

提前致谢...

0 个答案:

没有答案