Как обнаружить солнечный свет на фото

11

Как бы вы алгоритмически определяли для каждой фотографии, светило ли солнце, когда она была сделана?

Примеры

Пример с этой веб-камеры на вершине горы:

пример солнечного света

Ясно, что солнце светит.

В этом другом примере это гораздо менее очевидно:

облачный пример

Вероятно, довольно легко определить, туманно ли это, если попытаться определить крошечный шпиль церкви в часовне в центре. Однако, зная очень мало об обработке изображений, я был бы удивлен, если бы был (комбинация) алгоритм, который мог бы надежно сказать, есть ли солнечный свет или нет.

Марсель Стёр
источник
1
Я думаю , что он подходит к CS.SE очень хорошо. Это не подойдет, если вы спросите о сценарии imagemagick, который сортирует ваши фотографии в зависимости от солнечного света.
frafl
1
Вы имеете в виду обнаружение того, светило ли солнце в то время или нет, или определение того, где (ориентация) светило солнце?
Пареш
@Paresh, был ли светит солнце в то время была сделана фотография (думаю , веб - камеры).
Марсель Штлр
1
Вот замечательный анекдот о глупостях нейронной сети : Пентагон попытался обнаружить вражеские танки на фотографиях с помощью нейронной сети. Но в конце концов у них был мэйнфрейм-компьютер стоимостью в несколько миллионов долларов, который мог отличить фотографии, сделанные в облачный день, от снимков, сделанных в солнечный день. :-)
uli
Можем ли мы взять калиброванную камеру, то есть можем ли мы доверять цветам?
Рафаэль

Ответы:

9

Если вы можете получить доступ к метаданным, вы можете применить ряд эвристик:

  1. Проверьте баланс белой настройку, камера выбрала для фото. В основном это означает , цветовую температуру света в то время была сделана фотография. Обычно солнечный свет составляет около 5500 Кельвин. Внутреннее освещение или пасмурные дни, как правило , имеют различные температуры.

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

    1. Более низкая скорость затвора
    2. Установка меньшего значения
    3. Более высокое значение f

    В старые времена фотографии для оценки экспозиции использовалось правило Солнечного 16 . И вы можете использовать его вместе с информацией в списке выше, чтобы проверить, была ли фотография сделана в течение дня.

  3. Проверьте, сработала ли вспышка или нет.

  4. Проверьте время, когда была сделана фотография . Предполагая, что пользователь настроил часы, вы можете немедленно удалить фотографии, снятые ночью.

Однако если вы хотите подойти к этой проблеме просто с точки зрения обработки изображений. Я могу сказать, что солнечный свет обычно имеет более высокую контрастность и более резкие края. Поэтому анализ гистограммы и нахождение резких краев может дать хорошее указание.

Предполагая, что фотографии, которые вы обрабатываете, находятся в формате Raw Image, вы можете применить тот же трюк баланса белого, описанный выше. Это, однако , не работает для стандартных изображений, таких как JPEG или PNG. Это связано с тем, что процессор изображения на камере уже компенсирует сдвиг цветовой температуры и заполняет результат конечным изображением, просто записывая wb, устанавливая его в метаданных.

decden
источник
Я катался по полу, когда читал «Проверьте время, когда была сделана фотография». Однако я не уверен, что ОП хочет восстановить то, что сделала камера.
13
@frafl, я добавил два примера
Марсель Стёр
@frafl Эвристика - это любой подход к решению проблем, обучению или открытию, в котором используется практический метод, который не гарантированно будет оптимальным или совершенным, но достаточным для достижения ближайших целей. Проверка времени, когда была сделана фотография (если местоположение хотя бы частично известно) будет вполне приемлемой эвристикой.
Энди Джи