- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在运行一个使用 openCV for C++ 的基本应用程序。我正在尝试使用 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'
这个错误是什么意思,我该如何解决这个问题?
最佳答案
您用来创建垫子的 IplImage 应该是彩色的。您需要三个 channel 才能使用 cvSplit
。您可以在调试器中使用 IplImage->nChannels
进行检查。
关于c++ - cvSplit 中的 OpenCV 错误 : Assertion failed (i < src. channel ()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12197128/
cvSplit 函数的正确使用方法是什么?我看到了它的不同版本。应该是 cvSplit(oriImg, r,g,b, NULL); 或 cvSplit(oriImg, b,g,r, NULL); 最佳
我尝试了几种打开图像和拆分 channel 的方法。我只想使用 3 Matrix。我不知道怎么了。这是我的代码: IplImage* img = cvLoadImage( "C:\\foo.j
我正在使用 cvSplit() 来分离 RGB channel 并将它们打印在 3 个不同的图像中,显示颜色 r、g 和 b。但我只有黑白照片的 BW 图像。这是使用 cvSplit() 时的正确输出
我正在运行一个使用 openCV for C++ 的基本应用程序。我正在尝试使用 cvSplit() 将图像拆分为 rgb 分量,如下所示: CvMat* mat; //initialize mat
我是一名优秀的程序员,十分优秀!