使用opencv在android中抓取连续帧

时间:2011-11-08 13:14:02

标签: android image-processing opencv android-camera

我正在尝试使用opencv VideoCapture类从android中获取连续帧。其实我想在android上实现光流,我需要2帧。我首先在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,输出)减去矩阵,然后显示输出,它给我黑色图像,表明mRgba和mRgba2是具有相同数据的图像帧。任何人都可以帮助如何抓取两个不同的图像。根据opencv文档,mRgba和mRgba2应该是不同的。

1 个答案:

答案 0 :(得分:2)

这个问题与

完全相同

read successive frames OpenCV using cvQueryframe

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