我正在使用opencv和qt库用可视化的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));有人能帮我吗?提前谢谢。
发布于 2012-12-10 21:38:19
我认为这与这篇文章有关,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;https://stackoverflow.com/questions/13801991
复制相似问题