灰度图像在1.0下我们可以这么写:
int main(int argc, char* argv[])
{
IplImage* src = cvLoadImage("lampard.jpg",1);
IplImage* gimg =0;
gimg =cvCreateImage(cvGetSize(src),src->depth,1);
cvNamedWindow("showImage");
cvCvtColor(src,gimg,11);
cvSaveImage("1.jpg",gimg);
cvShowImage("showImage",gimg);
cvWaitKey(0);
cvReleaseImage(&src);
cvDestroyWindow("showImage");
return 0;
}
但是在3.0下,你要是这样用cvCvtColor的话,就会出错:
3.0你干了什么。。。。
找到相应文件
哪位大神解释下啥意思?欢迎评论,解惑。
后来我在这里,发现有人也遇到这个问题,嗯,我翻遍了百度(请原谅我用百度),都没有人遇到这个问题。
就这样,我照葫芦画瓢改了代码如下:
int main(int argc, char* argv[])
{
Mat m = imread("2.jpg", CV_LOAD_IMAGE_COLOR);
IplImage src(m);
cvNamedWindow("showImage");
IplImage* gimg = cvCreateImage(cvGetSize(&src), 8, 1);
cvCvtColor(&src, gimg, CV_BGR2GRAY);
cvSaveImage("1.jpg", gimg);
cvShowImage("showImage", gimg);
cvWaitKey(0);
cvReleaseImage(&gimg);
cvDestroyWindow("showImage");
return 0;
}
成功运行!
一天时间解决了问题,但是不知道原因是啥。。。。
另外,第一段代码要是,rgb转hsv的话,也能运行。。。。3.0你在逗我么?