android - 使用opencv在android中抓取连续帧

我正在尝试使用 opencv VideoCapture 类从 android 中获取连续帧。实际上我想在需要 2 帧的 android 上实现光流。我首先在 C 中实现了光流,我使用 cvQueryFrame 抓取了帧,并且一切正常。但是当我打电话时在android中

 if(capture.grab())
  {
     if(capture.retrieve(mRgba))

        Log.i(TAG, "first frame retrived");

  }
  if(capture.grab())
  {
    if(capture.retrieve(mRgba2))

    Log.i(TAG, "2nd frame retrived");
  }

然后使用 Imgproc.subtract(mRgba,mRgba2,output) 减去矩阵,然后显示输出它给我黑色图像,表明 mRgba 和 mRgba2 是具有相同数据的图像帧。任何人都可以帮助如何抓取两个不同的图像。根据 opencv 文档 mRgba 和 mRgba2 应该是不同的。

最佳答案

这个问题与

read successive frames OpenCV using cvQueryframe

您必须将图像复制到另一个内存块,因为捕获总是返回相同的指针。

https://stackoverflow.com/questions/8050936/

相关文章:

opencv - OpenCV中matchTemplate函数出现错误

visual-c++ - OpenCV Connected Component标签颜色?

ubuntu - 在 Ubuntu 中编译基于 OpenCV 和 ROS 的项目

c# - Windows 7 x32下C#中dllimport的问题

opencv - 使用openCV GMM类进行对象建模

python - SimpleCV NameError:名称 'images'未定义

opencv - Linux上的OpenCV编译:如何向其提供特定的zlib lib?

opencv - 将CvMat 8转换为CvMat

opencv - GLSL和OpenCV

c# - 如何申请cvsobel + emgucv