0

私は持っています:

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 *')

最終的には、作成したニューリーでこの関数を使用できるようにしたいと思いますIplImage

cvLabel(<#const IplImage *img#>, <#IplImage *imgOut#>, <#CvBlobs &blobs#>)

ご覧のとおり、からMatへの変換IplImageが必要です。しかし、それは機能していません。私の質問は、これをどのように修正するのですか?

前もって感謝します

4

1 に答える 1

2

Martin Beckettがコメントで述べているように、チートシートはこの解決策を示しています。cv::Matからへの変換はありませんがIplImage *、からcv::Matへの変換はありIplImageます。

行を変更します

IplImage *blobimg = image;

IplImage blobimg = image;

コンパイルする必要があります。

を呼び出すときはcvLabel、次のようなパラメータを渡します

cvLabel(&blobimg, ...);
于 2011-11-30T20:00:09.363 に答える