Получение последовательных кадров в Android с помощью OpenCV - PullRequest
0 голосов
/ 08 ноября 2011

Я пытаюсь получить последовательные кадры с Android с помощью класса opencv VideoCapture.На самом деле я хочу реализовать оптический поток на 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, output), а затем отображаю вывод, он дает мне черное изображение, указывающее, что mRgba и mRgba2 являются кадрами изображения сте же данные.Может ли кто-нибудь помочь, как получить два разных изображения.Согласно документации opencv mRgba и mRgba2 должны быть разными.

1 Ответ

2 голосов
/ 08 ноября 2011

Этот вопрос является точной копией

чтение последовательных кадров OpenCV с использованием cvQueryframe

Вам необходимо скопировать изображение в другой блок памяти, потому что захват всегда возвращаеттот же указатель.

...