我正在使用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));
有人能帮助我吗? 提前谢谢。
答案 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;