Часто пейзажная фотография оказывается сложной задачей, потому что быстро движущиеся объекты переднего плана (люди, автомобили и т. Д.) Загромождают фоновую сцену. Особенно когда вы находитесь в большом городе или популярном месте, сделать такой «чистый» снимок может быть очень сложно.

Один из способов обойти это - поставить камеру на штатив, использовать пульт дистанционного управления, чтобы сделать много фотографий (ожидая, скажем, 5–15 секунд между ними), а затем сгенерировать композицию с использованием медианы (в ваших «сырых» фотографиях) каждого пикселя.

Вот простой пример. Представьте себе шоссе с множеством проезжающих машин. На одной фотографии шоссе много «беспорядка на переднем плане», также известного как автомобили:

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

Почему вообще это работает ??

Что ж, предположим, что у вас есть постоянное положение камеры (отсюда и рекомендация использовать штатив и пульт дистанционного управления), и посмотрим, что происходит с одним пикселем.

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

Например, вы сделали шесть фотографий, и это:

  • Фоновая сцена создает значение пикселя 100
  • На фото 2 сцену перекрывала светло-серая машина (значение пикселя 150)
  • На фото 4 сцену перекрыл темно-серый внедорожник (значение в пикселях 50)

Тогда значения пикселей на шести ваших фотографиях будут следующими:

[100, 150, 100, 50, 100, 100]

а взятие медианы дает 100, что именно то, что вы хотите - значение пикселя, соответствующее фоновой сцене.

Обратите внимание, что важно сделать достаточно фотографий, чтобы получить достаточное количество вхождений значения фонового пикселя; в противном случае вы получите «визуальный шум»:

Наконец, вот сценарий, который я использовал для создания композитов. Я использовал чрезвычайно наивный и неоптимизированный подход, который просто перебирает все пиксели входных изображений, вычисляет медиану для этого пикселя и сохраняет результат в выходном изображении. На моем ноутбуке скрипту требуется около 50 секунд, чтобы обработать 45 изображений с разрешением 2560x1440. Однако этого должно быть достаточно, чтобы донести суть: