在Utils.matToBitmap中,断言失败了src.type

时间:2014-04-19 15:34:12

标签: android opencv

我想计算OpticalFlow然后显示,但我得到错误。 我的代码:

Bitmap resultBitmap = mResultBitmaps.poll();
Imgproc.cvtColor(image, image, Imgproc.COLOR_BGR2GRAY);
Mat flow = new Mat(image.size(), CvType.CV_8UC1);
Video.calcOpticalFlowFarneback(image, Prev_image, flow,0.5,1, 1, 1, 7,1.5,1);
Utils.matToBitmap(flow, resultBitmap, true);

但是我收到了这个错误:

Assertion failed (src.type() == CV_8UC1 || src.type() == CV_8UC3 || src.type() == CV_8UC4) in void Java_org_opencv_android_Utils_nMatToBitmap2(JNIEnv*, jclass, jlong, jobject, jboolean)

当我调试流程时:

Mat [ 320*320*CV_32FC2, isCont=true, isSubmat=false, nativeObj=0x77dd5148, dataAddr=0x77c7e010 ]

我该怎么办?

1 个答案:

答案 0 :(得分:1)

flow是一个2通道32位浮点数。如错误所示,输入需要为CV_8U 1,3或4个通道。您需要决定如何表示2通道数据。例如,拆分通道并使用convertTo将每个通道转换为CV_8U,为您提供两个图像。