开发者

Convert Mat to IplImage* in OpenCV and C/C++

in my application I have a Mat file which i'd like to show in a window with cvShowImage which is defined as:

void cvShowImage( const char* name, const CvArr* image )

Now, the problem is that if i pass directly the Mat image, it gives me an error conversion:

cannot convert 'cv::Mat' to 'const CvArr*' for argument '2' to 'void cvShowImage(const char*, const CvArr*)'

I tryed to search in this forum for someone with the same problem and i found this opencv documentation: http://opencv.willowgarage.com/documentation/cpp/c++_cheatsheet.html

But i didn't understand how to use it.

Can someone 开发者_运维百科give me an example of how to convert Mat image to IplImage, please?

This is my code:

Mat file;
Mat hogResultFrame = hogStep(temp2);
file = hogResultFrame;

  cvShowImage(window_title, (const CvArr*)(file));

but it gives me an error coversion.

I hope you can help me,

thanks a lot!


Why do you try to use the C interface with C++ datatypes? Use the C++ interface.

cv::namedWindow(window_title, 1);
cv::imshow(window_title, file);


Try this:

IplImage image = file;
cvShowImage(window_title, &image);

BTW. Maybe it would really be better to use C++ OpenCV functions for showing images, it should be easier and you won't get yourself concerns on whether you have cleaned all allocated memory or not (it is good to take a look at sample code here: http://opencv.willowgarage.com/documentation/cpp/introduction.html).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜