问题描述
||
在我的应用程序中,我有一个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)。