Opencv: преобразование мата в IplImage для cvLabel - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть:

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

И далее в своем коде я делаю:

Mat image = *depthImage;

Я делаю с ним некоторые вещи OpenCV, а затем хочу использовать cvBlob (таканализ капли).Хотя эта функция все еще использует 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 Ответ

2 голосов
/ 01 декабря 2011

Как говорит Мартин Беккет в комментариях, в этом листе указано это решение.Нет преобразования из cv::Mat в IplImage *, но есть преобразование из cv::Mat в IplImage.

Измените строку

IplImage *blobimg = image;

на

IplImage blobimg = image;

и он должен скомпилироваться.

При вызове cvLabel, передать параметр как

cvLabel(&blobimg, ...);
...