В чем разница между ' opencv.андроид.JavaCameraView " и " opencv.андроид.NativeCameraView`
Точно так же, как сказано в теме: В чем разница между opencv.android.JavaCameraView и opencv.android.NativeCameraView. Каковы преимущества одного над другим, главные из них, которые дают больше возможностей?
2 ответов:
Класс
org.opencv.android.JavaCameraViewреализован в библиотеке OpenCV. Он унаследован отCameraBridgeViewBase, который расширяетSurfaceViewи использует стандартный API камеры Android. В качестве альтернативы вы можете использовать классorg.opencv.android.NativeCameraView, который реализует тот же интерфейс, но использует классVideoCaptureв качестве бэк-энда доступа к камере. Опцииopencv:show_fps="true"иopencv:camera_id="any"включают сообщение FPS и позволяют использовать любую камеру на устройстве. Приложение пытается сначала использовать заднюю камеру.Реализация интерфейса
CvCameraViewListenerпозволяет добавлять этапы обработки после захвата кадра с камеры и перед его отображением на экране. Наиболее важной функцией являетсяonCameraFrame. Это функция обратного вызова, и она вызывается при извлечении кадра из камеры. Вход обратного вызова-объект классаCvCameraViewFrame, представляющий кадр из камеры.
Я просто взял этот ответ из здесь (это немного старый ответ) и добавил то, что я испытал:
Родная камера:
(+1) более высокая частота кадров
(+1) захват RGBA, нет необходимости конвертировать из формата android yuv.
- "компилируется только для архитектуры armv7" больше не соответствует действительности.
- (-1) не работает на всех устройствах - > подтверждаю !! Вот почему я им не пользуюсь !! см. ошибка 2359 .
- (-1) не поддерживает автофокус, настройка усиления.. (ответ дан в 2012 году)
Я надеюсь, что это может быть полезно !
Comments