Как использовать методы OpenCV в предварительном просмотре камеры Android

Я хочу выполнить некоторую обработку изображений, используя функции Imgproc OpenCV из изображения, снятого предварительным просмотром камеры.

Проблема в том, что я уже использую Camera.PreviewCallback для получения изображений из предварительного просмотра камеры Android. Но я увидел, что в OpenCV нам нужно использовать другой предварительный просмотр, который называется CvCameraViewListener2.

Так что мне нужно переделывать все мои вещи из моего пользовательского предварительного просмотра в OpenCV? Могу ли я просто использовать функции OpenCV без CvCameraViewListener2? Или CvCameraViewListener2 и Camera.PreviewCallback работают одинаково, и переключаться с одного на другое просто?

Что я уже использую:

public class MyClass implements Camera.PreviewCallback

В OpenCV:

public class MyClass implements CvCameraViewListener2 {

person Brian    schedule 06.01.2016    source источник
comment
SurfaceHolder.Callback реализует 3 метода, которые следуют жизненному циклу его SurfaceView, он не используется для захвата кадров предварительного просмотра. CvCameraViewListener2 в некоторой степени похож на интерфейс Camera.PreviewCallback.   -  person Alex Cohn    schedule 06.01.2016


Ответы (1)


После дополнительных исследований, благодаря этому сообщению: Невозможно использовать обе камеры Evo 4G с помощью OpenCV4Android могу сказать, что да. Мы можем использовать методы OpenCV без использования CvCameraViewListener2.

Я только что инициализировал библиотеку OpenCV, где хочу использовать обработку изображений (здесь объясняется шаг 10: http://docs.opencv.org/2.4/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html). Затем я могу использовать методы OpenCV.

И я могу получить матрицу для использования с OpenCV, например, с помощью:

img = new Mat(height, width, CvType.CV_8UC1);
person Brian    schedule 06.01.2016
comment
Обратите внимание, что ваш img только в оттенках серого. С другой стороны, CvCameraViewListener2 позволяет получать RGBA. Если вам нужен цвет, посмотрите stackoverflow.com/a/16704897/192373. - person Alex Cohn; 06.01.2016
comment
О, хорошо, это может быть полезно, в моем случае мне нужны были только оттенки серого, но это полезно знать. - person Brian; 06.01.2016