iplImage的cvThreshold

时间:2012-12-10 13:32:51

标签: visual-studio-2010 qt opencv

我正在使用opencv和qt库编写带有visual c ++的代码。我正在尝试将阈值应用到iplImage并显示它但我遇到了一些问题:当我将iplImage传递给cvThreshold函数(假设阈值为0)时,不会返回白色图像,我不知道为什么。 要显示我正在使用的函数emit:

uchar *qimout=new uchar[sImg];
            IplImage *greyImage=cvCreateImage(cvSize(wImg,hImg),IPL_DEPTH_8U,1);
            cvThreshold(currentImage,greyImage,0,255,cv::THRESH_BINARY);
            greyImage->imageData = (char*)qimout;
            emit renderImage(QImage(qimout,wImg,hImg,QImage::Format_Indexed8));

有人能帮助我吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我认为这与此帖Convert RGB to Black & White in OpenCV

有关
     // C
        IplImage *im_rgb  = cvLoadImage("image.jpg");
        IplImage *im_gray = cvCreateImage(cvGetSize(im_rgb),IPL_DEPTH_8U,1);
        cvCvtColor(im_rgb,im_gray,CV_RGB2GRAY);

        // C++
        Mat im_rgb  = imread("image.jpg");
        Mat im_gray;
        cvtColor(im_rgb,im_gray,CV_RGB2GRAY);
        // C
IplImage* im_bw = cvCreateImage(cvGetSize(im_gray),IPL_DEPTH_8U,1);
cvThreshold(im_gray, im_bw, 128, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);

// C++
Mat img_bw = im_gray > 128;