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

    xiaoxiao2025-08-17  1

    源代码:

    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);编译通过。

    转载请注明原文地址: https://ju.6miu.com/read-1301823.html
    最新回复(0)