Как измерить интенсивность видимого синего света в комнате с помощью камеры iPhone?

Я вижу, что алгоритм измерения яркости в люксах для пикселя (взято отсюда)

double luminance = r*0.299 + g*0.587 + b*0.114;

Меня интересует интенсивность света данного изображения в "синем" спектре, а не чистая яркость. Как это можно сделать? Может ли просто взять взвешенное «синее» значение каждого пикселя в изображении с камеры и каким-то образом усреднить/добавить их?

Спасибо за ваш вклад!


person Alex Stone    schedule 20.09.2012    source источник


Ответы (2)


Яркость — это интенсивность на единицу площади.

Опубликованная вами формула не предназначена для преобразования интенсивности красного, зеленого и синего в общую яркость или наоборот; это просто взвешивание красной, зеленой и синей яркости, чтобы получить общую яркость. У вас уже есть синяя яркость, поэтому соответствующая формула для ваших целей:

b

Или, если вы предпочитаете:

b*0.114

С другой стороны, это зависит от того, что вы спрашиваете, но, вероятно, где-то по этому пути:

Интенсивность для каждого пикселя — это яркость для этого пикселя, умноженная на площадь пикселя.

Интенсивность всего массива представляет собой сумму всех этих отдельных интенсивностей.

Яркость для всего массива — это интенсивность всего массива, деленная на общую площадь массива, и должно быть очевидно, что это также тривиально.

Яркость для всей комнаты… ну, по-видимому, все дело здесь в том, что вы делаете предположение, что оно примерно такое же, как яркость для массива камер, поэтому, по предположению, оно точно такое же, как и последнее значение.

Интенсивность для любой плоскости во всей комнате — это произведение яркости на площадь этой плоскости, а интенсивность для комнаты в целом — это сумма всех этих плоскостей, но это, вероятно, не очень полезно для вас.

Интенсивность изображения — это просто интенсивность на массиве камер в момент, когда вы делали снимок. Это, вероятно, более полезно, чем интенсивность комнаты.

person abarnert    schedule 20.09.2012

@abamert уже дал правильный ответ. Добавлю немного деталей.

Термин luminance в цифровых изображениях и видео является распространенным, но не лучшим выбором, поскольку может вызвать путаницу с фотометрическим термином. Лучшим выбором будет luma. В статье, на которую ссылается OP, происходит именно эта путаница (несмотря на то, что на самом деле она ссылается на запись фотометрического термина в Википедии, которая, по иронии судьбы, начинается с примечания Не путать с Luma).

LUX — это единица измерения силы света, и значение, которое вы получаете из данных пикселей, не может быть связано с такой мерой, если только вы не используете идеально откалиброванное устройство, работаете с необработанными данными, а также точно знаете фактическую кривую отклика. Вы не получаете LUX или Candles или что-то точное из изображения с камеры.

Существует несколько цветовых моделей, и каждая может иметь несколько цветовых пространств. Данные вашего изображения представлены в формате RGB, но RGB — это цветовая модель, а не цветовое пространство. Существует несколько цветовых пространств RGB.

Формула Y = R*0.299 + G*0.587 + B*0.114 — это стандартная формула для вычисления яркости Y, определенной в цветовом пространстве NTSC, на основе данных в цветовом пространстве CIE-RGB (обратите внимание, что Y, R, G и B — все значения от 0 до 1). Но ваше изображение, вероятно, находится не в пространстве CIE-RGB, оно, вероятно, находится в цветовом пространстве sRGB, поэтому на самом деле вы просто получаете значение, которое не существует в стандартном определенном цветовом пространстве (вы в некотором смысле создаете свое собственное пространство).

Это подводит нас к еще одному важному вопросу: Меня интересует интенсивность света данного изображения в "синем" спектре, а не чистая яркость. не имеет смысла если вы не определите точно, что для вас синий спектр. Как говорит @abamert, у вас уже есть значение _blue_ из вашего RGB-изображения. Это синий цвет согласно sRGB, который использует белую точку D65 и имеет x=0,15 и y=0,06 (в пространстве CIE-XYZ) в качестве основных синих цветов. И это легче вычислить, поскольку он у вас уже есть.

person Analog File    schedule 20.09.2012