Exacly, как указано в теме: В чем разница между opencv.android.JavaCameraView
и opencv.android.NativeCameraView
. Каковы преимущества одного над другим, основные, которые дают больше возможностей?
В чем разница между `opencv.android.JavaCameraView` и` opencv.android.NativeCameraView`
Ответ 1
Класс 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
, который представляет кадр из камеры.
Ответ 2
Я только что взял этот ответ от здесь (это немного старый ответ) и добавил, что я испытал:
встроенная камера:
-
(+ 1) более высокая частота кадров
-
(+ 1) захватить RGBA, нет необходимости конвертировать из формата android yuv.
- ", скомпилированный только для архитектуры armv7" больше не соответствует действительности.
- (- 1) не работает на всех устройствах → я подтверждаю!! Вот почему я не использую его. см. ошибка 2359.
- (- 1) не поддерживает автофокусировку, настройку усиления.. (ответил в 2012 году)
Я надеюсь, что это может быть полезно!