Opencv:转换到IvImage for cvLabel

时间:2011-11-30 19:22:04

标签: c++ opencv blob iplimage

我有:

Mat *depthImage = new Mat(480, 640, CV_8UC1, Scalar::all(0));

在我的代码中我做的更多:

Mat image = *depthImage;

我用它做一些OpenCV的东西,然后我想使用cvBlob(所以blob分析)。虽然此功能仍然使用IplImage而不是Mat。所以我想转换它们。我读过我可以这样做:

 IplImage *blobimg = image;

但是它不起作用,我收到了这个错误:

Semantic Issue: No viable conversion from 'cv::Mat' to 'IplImage *' (aka '_IplImage *')

最终我希望能够在newley创建的IplImage

上使用此功能
cvLabel(<#const IplImage *img#>, <#IplImage *imgOut#>, <#CvBlobs &blobs#>)

正如您所见,需要从Mat转换为IplImage。但它没有用。我的问题是如何解决这个问题?

提前致谢

1 个答案:

答案 0 :(得分:2)

正如Martin Beckett在评论中所说,cheatsheet显示了这个解决方案。没有从cv::MatIplImage *的转换,但是从cv::Mat转换为IplImage

更改行

IplImage *blobimg = image;

IplImage blobimg = image;

它应该编译。

调用cvLabel时,传递参数

cvLabel(&blobimg, ...);