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 应该是彩色的。您需要三个频道才能使用cvSplit. IplImage->nChannels您可以在调试器中检查这一点。

于 2012-08-31T16:05:19.513 回答