Доступ к HardwareBuffer из ImageReader - PullRequest
0 голосов
/ 11 апреля 2020

Я пишу приложение для устройства Android, в котором я хочу обработать изображение с камеры.

Камера на этом устройстве поддерживает только форматы NV21 и PRIVATE. Я проверил с помощью CameraCharacteristics и попробовал различные форматы, такие как YUV_420_888, только для сбоя приложения. Поддержка HW камеры: INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED

Чтобы создать CameraCaptureSession, мне нужно создать ImageReader. Для создания ImageReader мне нужно выбрать ImageFormat, в этом случае работает только PRIVATE. Если я пробую NV21, я получаю сообщение о том, что оно не поддерживается.

Мой onImageAvailableListener срабатывает, но поскольку ImageFormat имеет значение PRIVATE, атрибут «плоскости» в изображении возвращает значение NULL.

В соответствии к документации, можно получить доступ к данным через HardwareBuffer.

Начиная с Android Доступ к частным изображениям P также можно получить через их аппаратные буферы (если они доступны) через метод Image # getHardwareBuffer (). Попытка получить доступ к плоскостям частного изображения вернет пустой массив.

Я получаю объект типа HardwareBuffer, когда получаю изображение из acquLatestImage, но у меня такой вопрос: Как получить фактические данные / байты, представляющие пиксели, из объекта HardwareBuffer?

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