OpenCV3.0下 cvCvtColor函数灰度化图像遇到问题及解决办法

Posted 不要做程序员的小松鼠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV3.0下 cvCvtColor函数灰度化图像遇到问题及解决办法相关的知识,希望对你有一定的参考价值。

灰度图像在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你在逗我么?

以上是关于OpenCV3.0下 cvCvtColor函数灰度化图像遇到问题及解决办法的主要内容,如果未能解决你的问题,请参考以下文章

opencv中cvCvtColor函数在哪个库

OpenCV灰度化图像

opencv中cvCvtColor函数在哪个库

读取图像灰度opencv 3.0.0-dev

opencv 提取单通道 ,转化灰度图像。

OpenCv关于灰度积分图的SSE代码学习和改进。