В Android алгоритмы обработки изображений могут быть реализованы как на уровне HAL, так и на уровне приложений. Android Framework расположен между HAL и приложением и предоставляет интерфейс для взаимодействия с камерой. При вызове метода set
:
captureBuilder.set(
CaptureRequest.CONTROL_SCENE_MODE,
CameraMetadata.CONTROL_SCENE_MODE_HDR);
Вы запрашиваете HAL для выполнения HDR перед возвратом изображения в приложение. Обратите внимание: HAL внедряется OEM-производителями (или поставщиками) (может считать Pixel OEM-производителем), и разработчик должен реализовывать различные CONTROL_SCENE_MODES
. Вы можете и должны запрашивать доступные режимы управления, используя:
// Get the camera charecteristics for current camera
CameraCharacteristics cameraCharacteristics = getCameraCharecteristics(cameraFacing);
int[] modes = cameraCharacteristics.get(
CameraCharacteristics.CONTROL_AVAILABLE_SCENE_MODES);
// Check if the modes array has the SCENE MODE you wish to apply
// ... by iterating through the list.
Если вы запустите это на Pixel 3 XL, вы можете не получить поддержку HDR. Поправьте меня, если я ошибаюсь.
Если вы не хотите sh писать свои собственные алгоритмы для HDR и ночного режима, вам придется полагаться на доступные сценические режимы, и для этого лучше всего будет запросить и подтвердить. В качестве альтернативы вы можете запросить YUV
или RAW
изображение с камеры 2 и запустить их с помощью алгоритмов HDR или ночного режима на уровне приложения.
TL; DR; Собственная камера пикселя Google Скорее всего, выполняется больше обработки изображения поверх изображения, возвращаемого камерой2, и, следовательно, его нельзя воспроизвести, используя только камеру2, задав любые конфигурации.