Можно ли определить только по фотографии городского пейзажа, был ли он снят вблизи с широким углом или с расстояния с увеличением? - Фотопедия
6 голосов
/

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

Возможно ли это вообще?

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

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

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

(PPS- Самая первая фотография, на которой я это попробовал, доказала, что я не прав. Три здания на прямой улице. Они в основном все в одну линию, с расстоянием, возможно, в километр, всего). Перспектива вызвала отношения разделения на изображении, которые невозможно воспроизвести, повернув трехмерную модель вокруг вертикальной оси. Это все еще может (возможно, возможно) решить эту проблему, но это будет не так просто, как я надеялся.)

Ответы [ 5 ]

11 голосов
/

Вы можете часто использовать техники из пилотирования . Вы можете найти выравнивания на картинке, например, угол здания, который маскирует 2-ю вертикальную линию окон здания в задней части. Из этого вы определяете линию, на которой должна была находиться камера. Еще с двумя такими выравниваниями вы получите три линии, которые дают вам треугольник, в котором должна быть камера, а ее размер дает вам степень точности. Элементы переднего плана могут дать вам очень точное положение. GoogleEarth - твой друг.

Каким-то образом не связанным с фотографией, пару лет назад я охотился за новым жильем, и рекламные объявления никогда не давали полный адрес, но, применяя эту технику, используя виды из окон и балкона на рекламных фотографиях, я обычно мог обнаружить здание ,

7 голосов
/

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

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

Краткий обзор искажения и сжатия в перспективе:
В фотографии фокусное расстояние используемого объектива определяет, насколько широким или узким является снимок. Малое фокусное расстояние означает широкий угол, и наоборот.
Выбор фокусного расстояния не только влияет на искажения, как красиво изображено GIF на вики-странице, но также определяет сжатие.

Скажем, вы на расстоянии 10 метров от Майка. Вы делаете снимок Майка с 50-миллиметровым объективом, затем возвращаетесь на 40 метров и делаете еще один снимок, на этот раз с 200-миллиметровым объективом. Красивое лицо Майка занимает то же место на кадре, но на этот раз фон кажется ему ближе, и лицо Майка «более плоское», чем на предыдущем снимке. Это то, что обычно называется сжатием.

Глядя на то, насколько сжатые изображения могут , возможно , поможет вам определить расстояние. Это уже сложно, и, вероятно, потребует немало догадок. Однако становится сложнее.

Если у вас нет оригинальных файлов или негативов / позитивов, весьма вероятно, что фотография, которую вы видите, обрезана.
Обрезка дополнительно затрудняет, потому что обрезка также влияет на сжатие. Снимок, сделанный с помощью 50-миллиметрового объектива, обрезанного до половины размера, будет выглядеть так же (с точки зрения сжатия), как и при съемке с использованием 100-мм объектива, с того же расстояния.

Смотрите картинку?

4 голосов
/

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

diagram of positions of things

Здесь камера находится на уровне земли слева, и есть две точки на равной высоте, h, разделенные s, причем камера находится на расстоянии D от ближайшей, и все находится на одной линии (давайте не обращайте внимания на проблему, заключающуюся в том, что ближайший объект затемнит более отдаленный объект: в реальной жизни вещи не будут находиться в такой линии, а математика будет сложнее).

Вы знаете h и s, как вы знаете, что находится в городе, и вы хотите понять D, глядя на фотографию: вы можете? Да, вот как.

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

  • h1 = HD / D (ближайший)
  • h2 = hd / (D + s) (далее один)

Итак, теперь мы знаем s, h (из геометрии города), h1 и h2 (из измерения фотографии), и мы не знаем d (и на самом деле нам все равно) и мы не знаем D, но все равно.

Так что теперь мы можем сделать немного алгебры:

h1 / h2 = hd (D + s) / (hdD) = (D + s) / D

So

D = s / (h1 / h2 - 1)

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

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

Наконец, вы можете убедить себя, что это выражение для D правильно: если h1 и h2 одинаковы, то D становится бесконечным, и это правильно, потому что вы увидите только две башни на одной высоте, если вы бесконечно далеко от них. Точно так же, если h1 / h2 становится очень большим, тогда D становится очень маленьким, и это правильно: если вы очень близки к одной башне, она будет выглядеть очень большой на изображении.

Теперь, как я уже сказал, это игрушечный пример: в реальной жизни ничего не будет выстроено в линию, все будет разной высоты и так далее. Но если у вас есть достаточно точек на изображении, для которых вы знаете, где находятся реальные точки, то вы можете сказать, откуда было сделано изображение (интересный вопрос: сколько точек вам нужно? Я подозреваю, что в целом это будет 3, хотя это может быть 4: я уверен, что это известно, однако).

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


Примечания:

  • Я предположил, что оптическая система камеры не вносит искажений - в реальной жизни они будут, но для большинства объективов они должны быть достаточно малы (не пытайтесь делать это с рыбьим глазом или объективами с очень широким углом обзора) );
  • Я не думал о том, что может делать движение камеры (обычное для старых LF-изображений) - точнее, я думал , и я не сделал однозначного заключения, хотя я не думаю, что они будут иметь значение .
2 голосов
/

Краткий ответ - да. Это делается каждый день.

Тема Фотограмметрия включает в себя ответы на ваш вопрос.

Фотограмметрия - это измерение по изображениям. Фотограмметрия полезна для топографического картирования, архитектуры, инженерии или даже геологии! Существует много программных инструментов, предназначенных для аэрофотоснимков, фотограмметрия действительно полезна для географического использования. Например, археологи также используют его для создания планов сложных и удаленных мест.

Фотограмметрия, когда я изучал ее, включала в себя работу с аэрофотоснимков и перевод иллюстраций в количество воды и земли, а также расстояния и направления к картам.

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

Программное обеспечение существует для применения того, что вы знаете, к тому, что вы хотите знать. Простой поиск по термину Фотограмметрия даст вам точный источник для автоматического способа проверки. Некоторые из них онлайн.

1 голос
/

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

Если изображение имеет преувеличенную перспективу, оно было снято крупным планом с широкоугольным объективом. Е.Г .: Вы видите два 3-х этажных здания. Тот, что впереди, занимает почти всю высоту фотографии, а тот, что сзади, выглядит крошечным.

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

Добро пожаловать на сайт Фотопедия, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...