Сброс AutoExposureLock после вызова takePicture ()

У меня проблема с блокировкой экспозиции в классе Camera Camera.Parameters. Я могу заблокировать экспозицию, прежде чем делать снимок, но при вызове функции camera.takePicture(shutterCallback, rawCallback, jpegCallback) экспозиция снова начинает автонастройку.

Кроме того, getAutoExposureLock() прежнему возвращает значение true даже если предварительный просмотр и окончательные сохраненные изображения показывают скорректированную экспозицию.

В документации на Android говорится, что блокировка экспозиции не будет изменена путем съемки: http://developer.android.com/reference/android/hardware/Camera.Parameters.html#setAutoExposureLock(boolean)

Что мне не хватает?

Мне удалось заблокировать компенсацию экспозиции на моей Galaxy S4

 Camera.Parameters parameters = mCamera.getParameters(); parameters.setAutoExposureLock(true); mCamera.setParameters(parameters); mCamera.startPreview(); 

Затем в каждом takePicture я в основном сбрасываю блокировку на true

 Camera.Parameters parameters = mCamera.getParameters(); parameters.setAutoExposureLock(true); mCamera.setParameters(parameters); 

Это удается что- то сделать. Все захваченные изображения почти одинаково яркие. Изменение exposureCompensation Компенсация не влияет, но при изменении ISO время экспозиции автоматически регулируется.

Я буду копать еще кое-что в этом и обновить это сообщение соответственно.

У меня такая же проблема. Это потому, что camera.takePicture(shutterCallback, rawCallback, jpegCallback) останавливает предварительный просмотр; Вы должны вызвать camera.startPreview(); Для продолжения предварительного просмотра.

Я пришел к этому сам, я предполагаю, что это ошибка API, поскольку он работает для меня так же, как и для вас. Разве вам не удалось это исправить? Дай мне знать!

Сброс блокировки на true в takePicture не очень хорошо работает на моей Samsung Galaxy Note 3. Это делает ситуацию немного лучше, но все равно производит изображения с совершенно другой яркостью. Exif внутри этих jepgs подтверждает, что exposure time варьируется от 1/120 с до 1/400 сек.

Я также заметил, что некоторые jpegs имеют одинаковое exposure time (1/120 с), но различное значение brightness сохраненное в exif. Итак, я предполагал, что пост-процессор изображения – это прерыватель игры.

Я сбросил все параметры камеры с помощью native_getParameters , нашел параметры коррекции изображения и установил их все на 5 . Этими параметрами являются:

 set("min-brightness", 5); set("max-brightness", 5); set("contrast", 5); set("min-contrast", 5); set("max-contrast", 5); set("max-saturation", 5); set("min-saturation", 5); set("saturation", 5); 

Теперь выход намного лучше. Изображения почти одинаково яркие. Все 500 тестовых изображений имеют exposure time = 1/120 ± 1 (редко 1/125) и brightness = 5 ± 0,1.

У меня была такая же проблема на S3. Я закончил эту линию в начале обратного вызова:

 public void onPictureTaken(byte[] data, Camera camera) { //Relock the camera for S3 device camera.startPreview(); UnLockCamera(camera); LockCamera(camera); // your code 

С помощью двух функций ниже

 public void LockCamera(Camera camera){ //stop auto white balance and auto exposure lock Camera.Parameters params = camera.getParameters(); if (params.isAutoExposureLockSupported()) { params.setAutoExposureLock (true); } if (params.isAutoWhiteBalanceLockSupported()) { params.setAutoWhiteBalanceLock(true); } camera.setParameters(params); } public void UnLockCamera(Camera camera){ //stop auto white balance and auto exposure lock Camera.Parameters params = camera.getParameters(); if (params.isAutoExposureLockSupported()) { params.setAutoExposureLock (false); } if (params.isAutoWhiteBalanceLockSupported()) { params.setAutoWhiteBalanceLock(false); } camera.setParameters(params); } 
Intereting Posts
Android – Что возвращает Build.MANUFACTURER на устройства htc Android NDK: ПРЕДУПРЕЖДЕНИЕ: APP_PLATFORM андроид-9 больше, чем андроид: minSdkVersion 8 Захват всего прокрутки больше, чем экран Как понимать и выбирать значения при работе с ColorMatrix? Не удается нажать кнопку «Разрешить» в диалоговом окне разрешений в Android с помощью Appium Как отключить функцию обратной связи всякий раз, когда мое приложение активно? Android M Light и Dark status bar программно – как сделать его темным снова? Разные между папками android (bin, xbin, sbin) Как обращаться с несколькими входами и сессиями социальных сетей Поток на Android? Веб-просмотр Android сохраняет данные формы при изменении ориентации Переадресация вызова Android: несколько вариантов меню в одном действии NoClassDefFoundError при добавлении SocialAuth в Eclipse Как запустить приложение Telegram из моего собственного приложения для Android? Android java.lang.NoClassDefFoundError: org.jsoup.Jsoup