我想计算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 ]
我该怎么办?
答案 0 :(得分:1)
flow是一个2通道32位浮点数。如错误所示,输入需要为CV_8U 1,3或4个通道。您需要决定如何表示2通道数据。例如,拆分通道并使用convertTo将每个通道转换为CV_8U,为您提供两个图像。