Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cvtColor在OpenCV for Java中工作不正常_Java_Android_Opencv - Fatal编程技术网

cvtColor在OpenCV for Java中工作不正常

cvtColor在OpenCV for Java中工作不正常,java,android,opencv,Java,Android,Opencv,因此,我尝试使用CalcOpticalFlowPyrlk方法,它不断抛出断言失败: OpenCV Error: Assertion failed ((npoints = prevPtsMat.checkVector(2, CV_32F, true)) >= 0) checkVector检查输入矩阵是否为2通道,颜色深度是否为CV_32F。我的输入是一个有4个通道的垫子,颜色深度为CV_8U。当我尝试转换它时,它无法每次都更改。我曾经 Mat prevFrame; // The inpu

因此,我尝试使用
CalcOpticalFlowPyrlk
方法,它不断抛出断言失败:

OpenCV Error: Assertion failed ((npoints = prevPtsMat.checkVector(2, CV_32F, true)) >= 0) 
checkVector检查输入矩阵是否为2通道,颜色深度是否为CV_32F。我的输入是一个有4个通道的垫子,颜色深度为CV_8U。当我尝试转换它时,它无法每次都更改。我曾经

Mat prevFrame; // The input Mat. Grabbed from CvCameraViewFrame. Converted to rgb

Mat prev = new Mat(rows,cols, CvType.CV_32F);
Imgproc.cvtColor(prevFrame, prev, Imgproc.COLOR_BGRA2GRAY);
prev.convertTo(prev, CvType.CV_32F);

但当我检查后,上一个有正确的深度(CV_32F),但只有一个元素通道。我已经为此挣扎了好几个小时,但我不知道问题出在哪里

prevPtsMat向量上的断言失败了,它是
calcOpticalFlowPyrLK
调用的第三个参数。这里定义的矩阵似乎是第一个参数,它应该是一个单通道图像。

我假设您正在为第三个参数使用points数组,您可能需要为points数组显式创建一个
MatOfPoint2f()
。我认为这已在以下章节中描述:

刚刚看到你在2013年3月20日发布了这篇文章。我以为你几个小时前就把这个贴出来了