Снимки, сделанные API-интерфейсами Android-камеры, становятся больше после автофокуса, чем без автофокуса - PullRequest
0 голосов
/ 30 марта 2012

Я пробовал два разных подхода для захвата изображения с аппаратной части камеры Android, когда пользователь нажимает кнопку захвата изображения.Один с вызовом autoFocus и после того, как autoFocusCallback завершится с успешным ответом, захватите изображение.Во-вторых, захват изображения без вызова автофокуса.В обоих случаях я заметил, что результирующий байтовый массив, который передается методу onPictureTaken, имеет разную длину.Тот, который приходит после того, как autoFocus завершает успешно и вызывает autoFocusCallback, обычно по крайней мере на 50 Кбайт больше, чем тот, когда вызов autoFocus полностью игнорируется.Почему это так?Может ли кто-нибудь пролить свет?Чего я не понимаю, так это того, что если автофокус завершается успешно, разве изображение не должно быть хорошего качества?И, как правило, качество - это значение битов в каждом из байтов, представляющих каналы RGB для каждого пикселя.Общее количество пикселей и, следовательно, общее количество байтов, представляющих каналы RGB, должно быть одинаковым независимо от того, какие значения битов загружены в байты RGB.Но, по-видимому, кажется, что для лучшей четкости изображения после выполнения автофокуса добавлено больше байтов данных, чем для обычной четкости изображения.

Исследования ведутся уже более месяца.Был бы очень признателен за быстрый ответ.

1 Ответ

0 голосов
/ 30 марта 2012

Все драйверы захвата изображений / видео используют форматы YUV для захвата. Форматы YUV420 или YUV422 в большинстве случаев. Обратитесь по этой ссылке для получения дополнительной информации о форматах YUV http://www.fourcc.org/yuv.php

Как было упомянуто вами, снимки, сделанные после вызова автофокуса, намного более четкие (края более четкие и более контрастные), и такая же четкость отсутствует на изображениях, снятых без автофокуса.

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

...