C++ IplImage*的若干bug之一:cvCreateImage问题

来源:互联网 发布:软件开发规章制度 编辑:程序博客网 时间:2024/06/03 19:14

源代码:

IplImage* image_src, TempImg;  //定义两个IplImage*变量IplImage *image = cvLoadImage(“test.jpg”);  //加载一幅图片int width  = image->width;int height = image->height;image_src = cvCloneImage(image);cvSetImageROI(image_src, cvRect( 0, 0, width, height));TempImg = cvCreateImage(cvSize(width, height), image->depth, image->nChannels);cvCopy(image_src, TempImg);


在编译的过程中,出现以下错误:

错误: ‘operator=’在‘TempImg = cvCreateImage(cvSize(width, height), image->_IplImage::depth, image->_IplImage::nChannels)’中没有匹配附注: 备选是:In file included from /usr/local/include/opencv2/core/core_c.h:47:0,                 from /usr/local/include/opencv/highgui.h:45,                 from ../src/API_annotaDeal/API_annotaDeal.cpp:22:/usr/local/include/opencv2/core/types_c.h:465:16: 附注: _IplImage& _IplImage::operator=(const _IplImage&)/usr/local/include/opencv2/core/types_c.h:465:16: 附注:   no known conversion for argument 1 from ‘IplImage* {aka _IplImage*}’ to ‘const _IplImage&’/usr/local/include/opencv2/core/types_c.h:465:16: 附注: _IplImage& _IplImage::operator=(_IplImage&&)/usr/local/include/opencv2/core/types_c.h:465:16: 附注:   no known conversion for argument 1 from ‘IplImage* {aka _IplImage*}’ to ‘_IplImage&&’错误: 不能将‘void cvCopy(const CvArr*, CvArr*, const CvArr*)’的实参‘2’从‘IplImage {aka _IplImage}’转换到‘CvArr* {aka void*}’

修改后代码:

IplImage* image_src;  //定义IplImage*变量IplImage *image = cvLoadImage(“test.jpg”);  //加载一幅图片int width  = image->width;int height = image->height;image_src = cvCloneImage(image);cvSetImageROI(image_src, cvRect( 0, 0, width, height));IplImage* TempImg = cvCreateImage(cvSize(width, height), image->depth, image->nChannels);cvCopy(image_src, TempImg);
编译通过。

0 0
原创粉丝点击