我正在使用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'
此错误是什么意思,我该如何解决?
最佳答案
您用来创建Mat的IplImage应该是彩色的。您需要三个 channel 才能使用cvSplit
。您可以在调试器中使用IplImage->nChannels
进行检查。