Освещенность по exposureTime+isoSpeed+FNumber

Всего 7 сообщ. | Показаны 1 - 7
Освещенность по exposureTime+isoSpeed+FNumber
Добрый день.

Мне необходимо использовать камеру в качестве датчика света.

Пишу андроид-приложение, которое автоматически меняет яркость экрана на тех устройствах на которых датчика света нет, а камера есть.

Помогите пожалуйста узнать, как можно при помощи параметров, которые есть в EXIF, вычислить уровень света попавшего на объектив.
Уровень можно в попугаях. Главное чтобы он увеличивался при увеличении освещенности в помещении, в котором ведется съёмка.

параметры:
* цвет пикселя фото
* isoSpeed
* exposureTime
* FNumber
* может ещё что-то пропустил.
Re[Quster]:
* isoSpeed - чем больше , тем света меньше. Изменение исо в 2 раза - изменение освещенности в 2 раза
* exposureTime - чем больше, тем света меньше. Изменение экспозиции в 2 раза - изменение освещенности в 2 раза
* FNumber - чем больше , тем света больше. Изменение диафрагмы на одну ступень - изменение освещенности в 2 раза. Стандартный ряд 1,4; 2; 2,8; 4; 5,6; 8; 11; 16; 22; 32.

Только учтите, что камера считает, что объект среднесерый. При одном и том же освещении показания камеры могут отличатся на 2в4 - 2в5 степени, в зависимости от отражающей способности объекта, на который направлена камера.

А вообще есть формула перевода освещенности в люксы.
Re[Quster]:
Экспозиция это произведение isoSpeed * exposureTime * (1/FNumber²). (FNumber в знаменателе, потому что чем выше число, тем меньше света, и в квадрате потому что увеличение диаметра круга в 2 раза увеличивает его площадь в 4 раза) При среднесером объекте фотографирования. Если объект светлее или темнее среднесерого, будет ошибка экспозиции, но от неё никуда не деться, камера ведь этого не знает. Поэтому знание цвета пикселя на фотографии не поможет.
Re[Quster]:
Спасибо. Я задумался...
Re[Quster]:
надо сначало отколебровать уровень по извесному кол-ву люксов (например Луне как Адамс в своё время делал)

другоё дело що в етих люксах твориться абсолютно тотальный произвол относительно спектра етого света. скоко люксов в синем свето диоде???

А так будит отличный датчик, цыфру в raw делим на выдержку и фсё.
исо-множитель тоже надо проверить прогнав на одном и томже предмете и сравнив цыфры , иногда он идёт слехка не так или совсем нетак как написано. Вощем то он и необязан т.к. исо это вобще говоря мощность фспышки и к обычной съёмки имеет менее чем никакое отношение.

с диафрагмой обычно у объективов тоже куча проблемм, мухлежа и к томуже где её щитать когда есть виньетирование? обычно они пишут естессн осамую приятную цыфру..
можно померить реальное пропускание обьектива направив в ровную стенку сняв объектив (а лутше в луну т.к. от стенки не весь свет пролезет в баянет) и сравнив потом уровень.
Re[Quster]:
люксы не нужны. достаточно попугаев.
То есть нужна функция
double calculateLight(double pxBright, double exposureTime, double fNumber, double isoSpeed)

где pxBright - уровень яркости пикселя (средний по всему кадру)
exposureTime - время выдержки. например 0.01 с
fNumber - ширина раскрытия диафрагмы (f-number). например 5.6
isoSpeed - светочувствительность матрицы. например 400

возвращаемый результат - освещенность в попугаях.


Re[Quster]:
Всем спасибо. Тему можно удалять.
Вы не авторизованы

Пожалуйста, авторизуйтесь, чтоб иметь доступ к полному функционалу сайта