Android中的光流
我们已经和OpenCV打了两个星期的交道,以使其在Android上工作。 你知道在哪里可以找到光流的Android实现吗?如果它是用OpenCV实现的,那就太好了。试试这个Android中的光流,android,opencv,vision,opticalflow,Android,Opencv,Vision,Opticalflow,我们已经和OpenCV打了两个星期的交道,以使其在Android上工作。 你知道在哪里可以找到光流的Android实现吗?如果它是用OpenCV实现的,那就太好了。试试这个 @覆盖 CameraFrame上的公用Mat(CvCameraViewFrame输入框){ mRgba=inputFrame.rgba(); if(mMOP2fptsPrev.rows()==0){ //Log.d(“Baz”,“首次opflow”); //第一次穿过环路,所以我们需要prev和这个垫子 //加上以前的分数
@覆盖
CameraFrame上的公用Mat(CvCameraViewFrame输入框){
mRgba=inputFrame.rgba();
if(mMOP2fptsPrev.rows()==0){
//Log.d(“Baz”,“首次opflow”);
//第一次穿过环路,所以我们需要prev和这个垫子
//加上以前的分数
//拿这个垫子
Imgproc.cvtColor(mRgba、matOpFlowThis、Imgproc.COLOR_RGBA2GRAY);
//把它复制到上一张纸上
matOpFlowThis.copyTo(matOpFlowPrev);
//获取上一个角
Imgproc.良好特性跟踪(matOpFlowPrev,MOPcorners,iGFFTMax,0.05,20);
mMOP2fptsPrev.fromArray(MOPcorners.toArray());
//拿到这本书的安全副本
mMOP2fptsPrev.copyTo(mMOP2fptsSafe);
}
其他的
{
//Log.d(“Baz”、“Opflow”);
//我们以前也经历过这样的事情
//此mat有效。请将其复制到上一个mat
matOpFlowThis.copyTo(matOpFlowPrev);
//拿这个垫子
Imgproc.cvtColor(mRgba、matOpFlowThis、Imgproc.COLOR_RGBA2GRAY);
//把这个垫子的角弄到手
Imgproc.良好特性跟踪(matOpFlowThis,MOPcorners,iGFFTMax,0.05,20);
mMOP2fptsThis.fromArray(MOPcorners.toArray());
//从上一张垫子中检索角点
//(保存再次计算)
mMOP2fptsSafe.copyTo(mMOP2fptsPrev);
//把这些角落留到下次用
mMOP2fptsThis.copyTo(mMOP2fptsSafe);
}
/*
参数:
前置第一个8位输入图像
下一个第二个输入图像
需要找到流的2D点的prevPts向量;点坐标必须是单精度浮点数。
nextPts 2D点的输出向量(具有单精度浮点坐标),包含第二幅图像中输入特征的计算新位置;当传递OPTFLOW_USE_INITAL_FLOW标志时,向量的大小必须与输入中的大小相同。
状态输出状态向量(无符号字符);如果已找到相应特征的流,则向量的每个元素都将设置为1,否则将设置为0。
err错误的输出向量;向量的每个元素都被设置为对应特征的错误,错误度量的类型可以在flags参数中设置;如果未找到流,则不定义错误(使用status参数查找此类情况)。
*/
calcOpticalFlowPyrLK(matOpFlowPrev、matOpFlowThis、mMOP2fptsPrev、mMOP2fptsThis、mMOBStatus、mMOFerr);
cornersPrev=mMOP2fptsPrev.toList();
cornersThis=mMOP2fptsThis.toList();
byteStatus=mMOBStatus.toList();
y=byteStatus.size()-1;
对于(x=0;x
Openframeworks内置了openCV以及许多其他有趣的库。它有一个非常优雅的结构,我用它和安卓系统一起制作了一个虚拟的鼠标,使用摄像头的运动估计功能
在这里查看android的端口
似乎他们最近增加了对android studio的支持,否则eclipse工作得很好