1

C++ 用の openCV を使用して基本的なアプリケーションを実行しています。cvSplit()以下のように使用して、画像を RGB コンポーネントに分割しようとしています。

CvMat* mat;

//initialize mat

CvMat* b = cvCreateMat(mat->rows, mat->cols, CV_8UC1);
CvMat* g = cvCreateMat(mat->rows, mat->cols, CV_8UC1);
CvMat* r = cvCreateMat(mat->rows, mat->cols, CV_8UC1);
cvSplit(mat, b, g, r, NULL );

問題なくビルドできますが、実行しようとすると、次のエラーが発生します。

OpenCV Error: Assertion failed (i < src.channels()) in cvSplit, file /home/username/Downloads/OpenCV-2.4.0/modules/core/src/convert.cpp, line 1196
terminate called after throwing an instance of 'cv::Exception'

このエラーは何を意味し、どうすれば問題を解決できますか?

4

1 に答える 1

3

Mat の作成に使用している IplImage はカラーである必要があります。を使用するには 3 つのチャネルが必要ですcvSplit。これIplImage->nChannelsは、デバッガーで確認できます。

于 2012-08-31T16:05:19.513 に答える