在OpenCV和C / C ++中将Mat转换为IplImage *

问题描述

|| 在我的应用程序中,我有一个Mat文件,我想在带有cvShowImage的窗口中显示文件,其定义为:
void cvShowImage( const char* name,const CvArr* image )
现在的问题是,如果我直接传递Mat图像,它将给我一个错误转换:
cannot convert \'cv::Mat\' to \'const CvArr*\' for argument \'2\' to \'void cvShowImage(const char*,const CvArr*)\'
我试图在此论坛中搜索存在相同问题的人,并找到了以下opencv文档: http://opencv.willowgarage.com/documentation/cpp/c++_cheatsheet.html 但是我不知道如何使用它。 有人可以给我一个如何将Mat image转换为IplImage的示例吗? 这是我的代码
Mat file;
Mat hogResultFrame = hogStep(temp2);
file = hogResultFrame;

  cvShowImage(window_title,(const CvArr*)(file));
但这给了我一个错误的掩饰。 我希望你能帮帮我, 非常感谢!     

解决方法

        为什么尝试将C接口与C ++数据类型一起使用?使用C ++接口。
cv::namedWindow(window_title,1);
cv::imshow(window_title,file);
    ,        尝试这个:
IplImage image = file;
cvShowImage(window_title,&image);
顺便说一句。也许使用C ++ OpenCV函数显示图像确实会更好,它应该更容易,而且您不必担心是否已清除所有分配的内存(最好在此处查看示例代码:http://opencv.willowgarage.com/documentation/cpp/introduction.html)。