Я разрабатываю приложение для Android, которое уже использует API Camera2 для ручного управления встроенной камерой телефона (фокусировка, экспозиция, ISO и т. д.).
Теперь я хочу добавить поддержку внешних USB-камер (веб-камер на основе UVC или промышленных камер).
Моя цель — снимать изображения с высокой экспозицией/высоким коэффициентом усиления — например, с выдержкой 2 секунды или выше — с помощью этих внешних камер, подключенных через USB (OTG). Что я пробовал/обдумывал:
Я проверил CameraCharacteristics.LENS_FACING_EXTERNAL из
CameraManager, но на большинстве устройств он не отображает никаких внешних
камер, даже если одна из них подключена.
Я изучил сторонние библиотеки, такие как UVCCamera и
AndroidUSBCamera, использующая напрямую драйвер UVC. Однако
похоже, что они в основном предоставляют элементы управления предварительным просмотром и короткой выдержкой.
В API Camera2 я могу легко управлять
CaptureRequest.SENSOR_EXPOSURE_TIME и SENSOR_SENSITIVITY для
встроенных датчиков, но я не уверен, соответствует ли это устройствам UVC и каким образом
(так как многие из них не раскрывают эти параметры).
Я также читал, что «HAL внешней камеры» Android может поддерживать USB
камеры через API Camera2, но мне неясно, какие устройства или
версии Android действительно реализуют это.
Чего я хочу достичь:
Используйте USB-камеру (UVC или иное), подключенную к устройству Android
через OTG.
Снимайте неподвижные изображения с длинной выдержкой (около 2–3 секунд) и
ручной регулировкой усиления/яркости.
В идеале интегрируйте это в тот же рабочий процесс на базе Camera2. уже
используется для внутренних камер (или найдите лучшую возможную альтернативу).
Мои вопросы:
Кто-нибудь успешно использовал API Camera2 с внешней USB-камерой
(через внешнюю камеру Android HAL)?
Если нет, существует ли библиотека UVC, позволяющая управлять длинной выдержкой (в
секундах) на внешних USB-камерах?
Существуют ли какие-либо аппаратные ограничения или ограничения драйверов, которые препятствуют управлению длительной
выдержкой на Android с помощью USB-камер?
Какой лучший подход для достижения 2-секундной экспозиции
снимка с USB-камеры на Android — Camera2, библиотека UVC или
пользовательский JNI драйвер?
Я разрабатываю приложение для Android, которое уже использует API Camera2 для ручного управления встроенной камерой телефона (фокусировка, экспозиция, ISO и т. д.). Теперь я хочу добавить поддержку внешних USB-камер (веб-камер на основе UVC или промышленных камер). Моя цель — снимать изображения с высокой экспозицией/высоким коэффициентом усиления — например, с выдержкой 2 секунды или выше — с помощью этих внешних камер, подключенных через USB (OTG). [b]Что я пробовал/обдумывал:[/b] [list] [*]Я проверил CameraCharacteristics.LENS_FACING_EXTERNAL из CameraManager, но на большинстве устройств он не отображает никаких внешних камер, даже если одна из них подключена.
[*]Я изучил сторонние библиотеки, такие как UVCCamera и
AndroidUSBCamera, использующая напрямую драйвер UVC. Однако
похоже, что они в основном предоставляют элементы управления предварительным просмотром и короткой выдержкой.
[*]В API Camera2 я могу легко управлять
CaptureRequest.SENSOR_EXPOSURE_TIME и SENSOR_SENSITIVITY для
встроенных датчиков, но я не уверен, соответствует ли это устройствам UVC и каким образом (так как многие из них не раскрывают эти параметры).
[*]Я также читал, что «HAL внешней камеры» Android может поддерживать USB
камеры через API Camera2, но мне неясно, какие устройства или
версии Android действительно реализуют это.
[/list] [b]Чего я хочу достичь:[/b] [list] [*]Используйте USB-камеру (UVC или иное), подключенную к устройству Android через OTG.
[*]Снимайте неподвижные изображения с длинной выдержкой (около 2–3 секунд) и
ручной регулировкой усиления/яркости.
[*]В идеале интегрируйте это в тот же рабочий процесс на базе Camera2. уже используется для внутренних камер (или найдите лучшую возможную альтернативу).
[/list] [b]Мои вопросы:[/b] [list] [*]Кто-нибудь успешно использовал API Camera2 с внешней USB-камерой (через внешнюю камеру Android HAL)?
[*]Если нет, существует ли библиотека UVC, позволяющая управлять длинной выдержкой (в секундах) на внешних USB-камерах?
[*]Существуют ли какие-либо аппаратные ограничения или ограничения драйверов, которые препятствуют управлению длительной выдержкой на Android с помощью USB-камер?
[*]Какой лучший подход для достижения 2-секундной экспозиции снимка с USB-камеры на Android — Camera2, библиотека UVC или пользовательский JNI драйвер?