Перейти к содержимому

Как узнать размер расстояния по фотографии онлайн

  • автор:

bootsector

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

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

Как известно, простейший объектив для фотоаппарата можно сделать из одной двояковыпуклой линзы. Конечно, существуют фотоаппараты вообще без объектива (так называемые пинхол-камеры, предок которых — камера-обскура), но в данном случае они нам не слишком интересны. Для начала мы рассмотрим, как строится изображение в простейшем однолинзовом объективе, а затем я покажу, что те же методы хорошо подходят и для сложных объективов, сочетающих в себе более десятка последовательно расположенных линз.

Напомню вам схему хода лучей в тонкой линзе из школьного курса геометрической оптики:

На этой схеме d — расстояние от линзы до объекта, D — расстояние от линзы до изображения объекта (на матрице или плёнке), а f — фокусное расстояние линзы.

Формула тонкой линзы из того же курса связывает эти три расстояния:

Теперь ещё раз посмотрим на оптическую схему: h — это линейный размер объекта съёмки, а H — размер его уменьшенного изображения. Нетрудно заметить, что h = d tan α, а H = D tan α (это следует из свойств прямоугольного треугольника). Подставив эти величины в формулу тонкой линзы, увидим, что tan α сокращается, и в результате получим следующее уравнение:

«Неудобная» величина D ушла, а остальные мы знаем или можем легко вычислить. На основе этого уравнения получаем вот такую формулу расстояния до объекта:

Ну а теперь давайте проверим её на практике.

Вот фотография, которую я сделал из своего окна:

На ней запечатлён дом 1 по 3-му Дорожному проезду, что в Москве. Это 22-этажная башня серии И-700А.

Какую полезную информацию можно извлечь из данной фотографии? Напомню, для расчёта нам нужны неизвестные пока величины h, H и f. h — это реальная высота дома (в метрах). Сходу я её не нагуглил, зато выяснил вот что: высота потолков в этом доме — 2,64 м, а толщина перекрытий — 0,22 м. Наверняка при измерении высоты потолков не учитывалась толщина напольного покрытия. Точно она мне не известна, так что, немного округлив, примем высоту одного этажа равной 2,9 м. Хорошо видны 23 панели, таким образом, высота видимого участка составляет примерно 66,7 м. Запомним эту величину и приступим к анализу фотографии.

H — это размер изображения дома на матрице фотоаппарата. По фотографии мы можем подсчитать его в пикселях, но, как известно, размер пикселя — это всё равно что размер ангела: точных данных ни у кого нет. Но здесь нужно вспомнить, что конкретные физические размеры имеет матрица фотоаппарата. Лезем в поисковик и узнаём, что для камеры Nikon D90 размер матрицы составляет 2,36 × 1,58 см, а разрешение — 4288 × 2848 пикс. Наша фотография не была кадрирована или повёрнута, поэтому мы можем узнать точный линейный размер изображения дома на матрице, составив пропорцию. Но чтобы делать это не вручную, воспользуемся программой Adobe Photoshop, где есть масса полезных инструментов.

По умолчанию Photoshop, конечно, не знает, какого размера должна быть наша фотография, и указывает ей разрешение 300 пикс./дюйм, или 118,11 пикс./см:

Но мы, зная физический размер матрицы и количество пикселей по длинной стороне снимка, делаем такой расчёт: 4288 / 2,36 (размер матрицы в сантиметрах), и получаем правильное разрешение — 1817 пикс./см. Вписываем его в соответствующее окошко и, чтобы не изменились реальные размеры фотографии, а лишь были пересчитаны её длина и ширина в см, указываем в верхних полях «100 проц»:

Как видите, при этом в поле «Размер печатного оттиска» появились уже известные нам размеры матрицы: 2,36 × 1,57 см. Точнее, в спецификации было указано 1,58 см, но это несущественная погрешность.

Теперь при помощи инструмента «Линейка» измерим высоту видимого участка дома (23 панели) на фотографии (смотрите в правый верхний угол):

Получается, что высота изображения дома на матрице составляет 1,92 см, или 0,0192 м.

Осталось только выяснить фокусное расстояние, но для этого, к счастью, ничего считать не нужно: оно сразу прописывается при съёмке в метаданных фотографии (EXIF). Открываем их в фоторедакторе и видим:

Фокусное расстояние при съёмке составляло 105 мм, или 0,105 м, то есть я снимал дом с максимально возможным для этого объектива приближением.

Ну что ж, теперь у нас есть все данные для расчёта. Подставляем их в формулу

и получаем: d = (0,105(0,0192 + 66,7)) / 0,0192 = 364,9 м. Внимательный читатель наверняка заметил, сколь ничтожно мала величина H в сравнении с h, поэтому нашу формулу смело можно упростить до вида

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

Ну а теперь самое интересное — нужно проверить, верна ли была использованная нами формула? Ведь в начале я говорил, что мы рассматриваем упрощённую конструкцию объектива, а не реальную. Может быть, наши расчёты не имеют ничего общего с действительностью? К счастью, это легко выяснить. Заходим на Яндекс.Карты и переходим в точку с координатами 55.604364, 37.611455. Затем активируем инструмент «Линейка» и ставим на карте две точки: одну — возле окна, из которого было сделано фото, а другую — возле стены дома, на которой мы считали панели:

Получаем 365 м. Ну не красота, а? Величины совпали с точностью до 0,1 м! Конечно, такая точность в известной мере является результатом везения, потому что и при измерении размеров изображения, и при подсчёте высоты этажей, и при расстановке точек на карте я вполне мог допускать погрешности в 1–3%. Но, как бы то ни было, в конечном итоге расчётная и измеренная величины сошлись.

Скептически настроенный читатель может подумать, что я подгонял цифры, и что для другой фотографии всё будет по-другому. Что ж, у меня есть ещё одно фото того же дома, сделанное с аналогичной точки, но совсем с другим фокусным расстоянием:

Проделаем для него те же измерения и расчёты. У меня получилось, что размер изображения дома составляет 0,39 см, а фокусное расстояние — 21 мм. Подставляем эти числа в упрощённую формулу и получаем d = (0,021 × 66,7) / 0,0039 = 359,2 м. Результат немного отличается, но всё равно в рамках погрешности совпадает с измеренным по карте. Расхождение несложно объяснить: камера указывает фокусное расстояние как целое число, то есть и 20,51, и 21,49 мм она покажет как 21 мм. А это уже даёт погрешность 2,4%.

Впрочем, самых въедливых скептиков наверняка не убедил и этот пример. Ведь в обоих случаях я использовал один и тот же объектив — а что, если формула работает для него чисто по совпадению? Справедливое замечание. Чтобы проверить, так ли это, я возьму кадр, сделанный не только другим объективом, но и другим фотоаппаратом, причём не цифровым, а плёночным.

Вот фотография, которую мы будем анализировать:

Её много лет назад сделал мой отец на свой «Зенит-Е» с объективом Гелиос-44-2. Фокусное расстояние этого объектива составляет 58 мм. Определить физический размер изображения дома очень просто: у меня есть слайд, который я оцифровал с определённым разрешением, и сканер прописал его в свойствах файла. Тут даже пересчитывать ничего не нужно, достаточно воспользоваться линейкой.

Участок из тех же 23-х панелей имеет на слайде высоту 1,06 см. Подставляем значения в формулу: d = (0,058 × 66,7) / 0,0106 = 365 м. Полное совпадение!

Что ж, мы получили интересные результаты: выходит, простая формула для тонкой линзы позволяет получать весьма точные (и легко проверяемые) результаты при анализе реальных фотографий, а не «сферических коней в вакууме». Почему же так происходит, если реальный объектив представляет собой не одну линзу, а целый бутерброд из линз? Ответ на этот вопрос поможет дать статья Википедии. Для сложного объектива при расчёте вводят не одну, а две главные плоскости. Фактически, расстояния d и D, которые вы видели на схеме в самом начале этого поста, в этом случае отсчитываются от разных (хотя и не слишком удалённых друг от друга) точек.

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

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

Как видите, даже знаний из программы средней школы достаточно, чтобы убедиться в полной некомпетентности отдельных «экспертов». Любите математику и не давайте себя обмануть!

Привет

Помогите чайнику! Имеется туча изображений, на которых надо измерить расстояния между двумя точками. В поле зрения имеется метка длинной в 1 см. Надо знать расстояния между двумя парами точек на том же изображени. Для упрощения задачи картинка считается идеально плоской, хотя реально метка не всегда находится в одной плоскости с объектом.

Я знаю о существовании фотошопа, но на весь кампус он единственный, на другом конце кампуса и установлен на самый медленный компъютер. Под рукой есть программа для измерения расстояний на рентгеновских снимках, она идеально подходит, но сторонние изображения она не берёт .

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

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

Бесплатный сыр бывает только мышке ловкой.
Snickers Уже с Приветом Posts: 807 Joined: Thu Aug 16, 2001 1:01 am Location: Boston, MA

Re: Измерение растояний на jpeg-изображении

Post by Snickers » Tue Mar 26, 2013 9:00 am

Use «Measure Tool» from the ToolBox.

VI Уже с Приветом Posts: 3096 Joined: Wed Jan 16, 2002 1:01 am Location: USA

Re: Измерение растояний на jpeg-изображении

Post by VI » Tue Mar 26, 2013 9:32 am

Use «Measure Tool» from the ToolBox.

А варианта, сказать программе что размер метки — это 1 см и далее получать измерения в сантиметрах она позволяет? А результат измерения в Экселевскую таблицу перенести можно только вручную или можно как-то копипастить?

Бесплатный сыр бывает только мышке ловкой.
mitnlag Администратор Posts: 2127 Joined: Sun Apr 18, 2010 10:09 am

Re: Измерение растояний на jpeg-изображении

Post by mitnlag » Tue Mar 26, 2013 10:18 am

Измерьте, сколько пикселей этот ваш сантиметр и применяйте этот коэффициент к вашим расчетам. Ваш К.О.

bulochka Уже с Приветом Posts: 20597 Joined: Fri Sep 10, 2004 3:19 pm Location: RU-East Coast-CA-East Coast

Re: Измерение растояний на jpeg-изображении

Post by bulochka » Tue Mar 26, 2013 10:38 am

ImageJ — лучшая программа для таких целей (бесплатно загружается).

Чтобы задать шкалу, используете Analyze/Set scale. Измерить можно и расстояния, и площади, и многое другое. Да и для обработки изображений (если нет фотошопа) она годится, к тому же принимает картинки в разных форматах, включая 16-битовые и прочие извращения.

«If you thought that science was certain — well, that is just an error on your part.» Richard Feynman

VI Уже с Приветом Posts: 3096 Joined: Wed Jan 16, 2002 1:01 am Location: USA

Re: Измерение растояний на jpeg-изображении

Post by VI » Tue Mar 26, 2013 11:11 am

Я пробовал ImageJ, но как-то у меня она не очень пошла. Она меряет, но результат измерения не фиксировался после клика на вторую точку измеряемого отрезка. GIMP так себя не ведёт. Результат измерения остаётся и мышей после второго клика можно безболезненно кликать и двигать.

Теперь следующий этап — а позволяет ли какя либо из программ измерить оптическую плотность изображения (оно у меня ч/б)?

Бесплатный сыр бывает только мышке ловкой.
VI Уже с Приветом Posts: 3096 Joined: Wed Jan 16, 2002 1:01 am Location: USA

Re: Измерение растояний на jpeg-изображении

Post by VI » Tue Mar 26, 2013 11:12 am

mitnlag wrote: Измерьте, сколько пикселей этот ваш сантиметр и применяйте этот коэффициент к вашим расчетам. Ваш К.О.

Так и делаю, а хочется поленивее.
Бесплатный сыр бывает только мышке ловкой.

Leonid_V Уже с Приветом Posts: 6777 Joined: Mon Jul 10, 2000 1:01 am Location: Шербрук, Квебек Contact:

Re: Измерение растояний на jpeg-изображении

Post by Leonid_V » Tue Mar 26, 2013 11:32 am

bulochka wrote: ImageJ — лучшая программа для таких целей (бесплатно загружается)..
Fiji Is Just ImageJ

Leonid_V Уже с Приветом Posts: 6777 Joined: Mon Jul 10, 2000 1:01 am Location: Шербрук, Квебек Contact:

Re: Измерение растояний на jpeg-изображении

Post by Leonid_V » Tue Mar 26, 2013 11:52 am

mitnlag wrote: Измерьте, сколько пикселей этот ваш сантиметр и применяйте этот коэффициент к вашим расчетам. Ваш К.О.

Так и делаю, а хочется поленивее.

ImageJ делает это поленивее.
Дает оптическую плотность в любом ROI (region of interest)
Позволяет автоматический перевод пикселей в микроны (километры, локти, аршины итд)
Позволяет нарисовать тьму линий (тьма = много) и узнать длинну каждой в фарлонгах если такова единица измерения.
Активируем меню Analyze >> Mesure
видим виндашку Results, в ней площадь картинки и средняя температура по больнице, т.е. средняя оптическая плотность
ловкой мышкой кликаем на меню “линия“
проводим оную на изображении
жмем Ctrl-M (одновременное нажатие на клавиши Ctrl и литеру М)
в виндашке Results, в качестве бесплатного сыра появляется длинна в фарлонгах
проводим следующую линию, жмем Ctrl-M,
в виндашке появляется следующая длинна в фарлонгах
повторяем операцию требуемое количество раз
сохраняем результат, который видим в виндашечке в виде файла с циферками. Файл открываем в Excel, например.

Аналогично с плотностью, только вместо меню линия выбираем меню квадрат (ROI) или круг, или произвольная фигура.

Дисклаймер:
неограниченное поедание бесплатного сыра поднимает холестерин в крови ловкой мышки

Last edited by Leonid_V on Tue Mar 26, 2013 11:56 am, edited 1 time in total.

bulochka Уже с Приветом Posts: 20597 Joined: Fri Sep 10, 2004 3:19 pm Location: RU-East Coast-CA-East Coast

Re: Измерение растояний на jpeg-изображении

Post by bulochka » Tue Mar 26, 2013 11:55 am

VI wrote: Булочка!

Я пробовал ImageJ, но как-то у меня она не очень пошла. Она меряет, но результат измерения не фиксировался после клика на вторую точку измеряемого отрезка. GIMP так себя не ведёт. Результат измерения остаётся и мышей после второго клика можно безболезненно кликать и двигать.

Теперь следующий этап — а позволяет ли какя либо из программ измерить оптическую плотность изображения (оно у меня ч/б)?

Странно. В ImageJ надо задать, что именно хочется мерять — в Вашем случае длину. Дальше надо выбрать либо прямую, либо сегментированную линию. Кликаете мышкой в первой точке, если линия прямая — то «дотягиваете» ее до второй точки, если сегментированная — то достаточно кликнуть на второй точке. В любом случае после создания отрезка надо нажать на кнопку М или command+M и результат проявляется. После этого можно кликнуть на следующей точке (если используете сегментированную линию) и снова нажать на М, проявится следующий результат. Все это легко переносится в Эксель.

Интенсивность (или оптическая плотность) тоже меряется в этой же программе. Например, многие люди таким образом обмеряют интенсивность полос на гелях.

Насколько я понимаю, Вам нужна будет величина «Integrated Density»— The sum of the values of the pixels in the image or
selection. This is equavalent to the product of *Area* and *Mean Gray Value*. Величины, которые хотите измерить, задаются в меню Analyze/Set measurements.

Вообще если хочется что-то новое померить, гуглите нужный термин + ImageJ — есть много форумов и плагинов для этой программы.

«If you thought that science was certain — well, that is just an error on your part.» Richard Feynman

bulochka Уже с Приветом Posts: 20597 Joined: Fri Sep 10, 2004 3:19 pm Location: RU-East Coast-CA-East Coast

Re: Измерение растояний на jpeg-изображении

Post by bulochka » Tue Mar 26, 2013 12:09 pm

Leonid_V wrote:
bulochka wrote: ImageJ — лучшая программа для таких целей (бесплатно загружается)..
Fiji Is Just ImageJ
О, не знала. Теперь буду иметь в виду.

«If you thought that science was certain — well, that is just an error on your part.» Richard Feynman

VI Уже с Приветом Posts: 3096 Joined: Wed Jan 16, 2002 1:01 am Location: USA

Re: Измерение растояний на jpeg-изображении

Post by VI » Tue Apr 02, 2013 11:36 am

Спасибо за инструкции. Фсё делает, даже в эксель переносит. Буду работать.

Бесплатный сыр бывает только мышке ловкой.
12 posts • Page 1 of 1

  • Форум Привет
  • ↳ Общие разделы
  • ↳ О жизни
  • ↳ Политика
  • ↳ Украина
  • ↳ Эмиграция
  • ↳ Вопросы Истории
  • ↳ Возвращение
  • ↳ Финансы
  • ↳ Канадский Клуб
  • ↳ Инвестирование
  • ↳ Города и окрестности
  • ↳ Прочее
  • ↳ Дом. Быт. Семья
  • ↳ Наши дети
  • ↳ Наши родители
  • ↳ Мой дом
  • ↳ Продажа и покупка недвижимости
  • ↳ Огород
  • ↳ Ремонт и строительство
  • ↳ Мастерская
  • ↳ Здоровье
  • ↳ Кулинария
  • ↳ Фитнес
  • ↳ Шоппинг
  • ↳ Работа. Карьера. Образование
  • ↳ Работа и Карьера в IT
  • ↳ Образование
  • ↳ Карьера и Работа
  • ↳ Пенсии
  • ↳ Вопросы и новости IT
  • ↳ Английский язык
  • ↳ Русский и другие языки
  • ↳ Малый бизнес
  • ↳ Хобби. Досуг. Искусство
  • ↳ Путешествия
  • ↳ Наука и Жизнь
  • ↳ Отдых и Cпорт
  • ↳ Авиация, космонавтика, мореплавание
  • ↳ Фото-Видео
  • ↳ Головоломки
  • ↳ Литература и Искусство
  • ↳ О братьях наших меньших
  • ↳ Воспоминания
  • ↳ Юмор, шутки
  • ↳ Об оружии
  • ↳ Электроника
  • ↳ Автомобили
  • ↳ За рулём
  • ↳ Административные вопросы
  • ↳ Матчасть
  • ↳ Техника вождения
  • ↳ Разделы по интересам
  • ↳ О религии
  • ↳ По ту сторону разума
  • ↳ Разное
  • ↳ Ищу друзей
  • ↳ Объявления
  • ↳ Анти-Реклама
  • ↳ Архив
  • Board index
  • All times are UTC-08:00
  • Delete cookies

Powered by phpBB® Forum Software © phpBB Limited

Узнать EXIF, IPTC, XMP и другую информацию JPEG фото онлайн

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

Данный онлайн инстумент позволяет получить из JPEG фотографии такую информацию как: разрешение в пикселях и мегапикселях, фирму и модель фотоаппарата, размер в DPI, выдержку, диафрагму, значение ISO, дату съёмки, была ли использована вспышка или нет, тип и фокусное расстояние объетива, в том числе и то, которое использовалось при съёмке, был ли использован цифровой зум, режим баланса белого, пробег фотоаппарата (количество страбатываний затвора объектива), серийный номер фотоаппарата и объектива отдельно, GPS-координаты и многое другое.

На этом сайте ещё отдельно можно узнать, c каким качеством или уровнем сжатия была сохранения JPG картинка.

Исходное изображение никак не изменяется. Вам будет предоставлена только подробная EXIF информация.

Линейка Ruler App+ Photo Ruler 4+

Не хочу ничего арендовать ни год, ни месяц. Максимум один день. Или час.
Это не та программа, которую нужно брать по подписке. 1600 руб/год — несерьёзно.
Почему-то все свои результаты труда продают, но только программисты сдают в аренду.
Поставил три звезды только за ерасивый интерфейс. Увидев стоимость, в остальное даже вникать не стал.

Asd10i , 30.07.2022

Очень дорого, навязчиво и много рекламы

Такие деньги за линейку это перебор. Сфоткал экран с линейкой на телефон и забыл про эту шнягу. Причем пытаются «поймать» на втюхиванию платной версии (судя по жалобам это им удается). Бесплатная версия задолбает рекламой.

Igor357 , 04.09.2018

Фигня

Даже если на экран телефона положить линейку, то на 10 см уже идёт ошибка в сторону увеличения, показывает 10,5 см. Да, и хотя программа бесплатна, пытается списать деньги.

Ответ разработчика ,

Уважаемый Igor357, какая модель у Вашего iPhone? Вероятно. есть ошибка в коде. Мы постараемся исправить проблему для вашего устройства. Касательно заявления о том, что приложение «пытается списать деньги» — то это ложь с Вашей стороны. В приложении есть возможность купить Pro версию, отключить рекламу, но без ведома пользователя никаких транзакций произойти не может. К Вашему сведению сообщаем, что за размещение ложной информации существует ответственность. Рекомендуем пересмотреть содержание своего комментария и исправить его

Конфиденциальность приложения

Разработчик Grymala sp. z o.o. указал, что в соответствии с политикой конфиденциальности приложения данные могут обрабатываться так, как описано ниже. Подробные сведения доступны в политике конфиденциальности разработчика.

Не связанные с пользова­телем данные

  • Данные об использова­нии

Конфиденциальные данные могут использоваться по-разному в зависимости от вашего возраста, задействованных функций или других факторов. Подробнее

Информация

Провайдер Grymala sp. z o.o.
Размер 30,5 МБ

Совместимость iPhone Требуется iOS 13.0 или новее. iPad Требуется iPadOS 13.0 или новее. iPod touch Требуется iOS 13.0 или новее. Mac Требуется macOS 11.0 или новее и компьютер Mac с чипом Apple M1 или новее.

русский, английский, испанский, итальянский, корейский, немецкий, польский, португальский, упрощенный китайский, французский, японский

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *