Из комментария Мэтта Грума к моему предыдущему вопросу я узнал, что производители могут случайно «округлить» фактическое фокусное расстояние объектива до некоторого красивого числа, которое напечатано на коробке и сохранено в EXIF. Судя по его ответу на тот же вопрос, мне нужно знать фактическое фокусное расстояние объектива, чтобы проверить, какая диафрагма используется.
Я также слышал, что большинство объективов изменяют фокусное расстояние, когда фокусируются очень близко.
Как бы идти о тестировании , что фокусное расстояние объектива моя будет на самом деле , используя при фокусировке на заданном расстоянии? EXIF, очевидно, мне здесь не поможет, потому что данные помещаются туда производителем.
focal-length
tests
Имре
источник
источник
Ответы:
Существует математический / измерительный метод для расчета эффективного фокусного расстояния объектива путем измерения его угла зрения.
Формула для угла зрения дается как
Для вычисления эффективного фокусного расстояния (f) формула сводится к:
f = d / (2 * tan (α / 2)) -> Equation1
Где d представляет размер датчика в измеренном направлении. d будет 24, если вы используете полнокадровую камеру.
Теперь у нас есть следующая установка для измерения α
У вас есть камера, сидящая на высоте H от земли и на расстоянии X от стены со шкалой. Теперь сделайте снимок, и вы сможете прочитать максимальную высоту, которую может видеть объектив (это будет H + Y).
Теперь, зная X и Y, мы можем рассчитать половину угла зрения (т.е. α / 2), используя эту ссылку (X будет противоположной стороной, а Y - соседней)
Теперь, когда вы вычислили α / 2, используйте его в уравнении 1 для вычисления эффективного фокусного расстояния объектива.
Значение является точным только как ваши измерения.
Изменить 1:
В связи с вопросом Mattdm: Являются ли размеры датчика, указанные производителем, достаточно близки?
Со ссылкой на размеры датчиков камер в этих ссылках: здесь и здесь
Мы можем логически предположить, что производители камер или, по крайней мере, Canon и Nikon округляют свои размеры датчиков 1/10 мм. то есть есть вероятность ошибки +/- 0,05 мм, если они округляют размер датчика.
Давайте рассмотрим линзы трех типов:
1. Широкоугольный объектив (скажем, 13 мм, угол зрения: 85,4)
2. Нормальный объектив (50 мм, угол зрения 27,0)
3. Телеобъектив (300 мм, угол зрения: 4,58)
Эффект изменения размера датчика
на 0,05 мм : изменение для широкоугольного объектива = 0,05 / (2 * загар (85,4 / 2)) = 0,04613 мм ок.
Что представляет собой разницу в 0,35% (то есть (0,04613 / 13) * 100)
изменение для нормальной линзы = 0,05 / (2 * загар (27/2)) = 0,012 мм ок.
Что представляет собой разницу в 0,024% (т.е. (0,012 / 50) * 100)
изменение для телеобъектива = 0,05 / (2 * загар (4,58 / 2)) = 0,0019 мм ок.
Что представляет собой разницу 0,0006% (т. Е. (0,0019 / 300) * 100)
Таким образом, мы видим, что с широкоугольным объективом 13 мм и ошибкой 0,05 мм в измерениях производителей изменение фокусного расстояния составляет всего 0,35%.
Я надеюсь, что моя математика верна.
Изменить 2:
В связи с вопросом Имре об измерениях для X & H,
H следует измерять от земли до горизонтального центра датчика.
X - расстояние между датчиком и стеной.
источник
Предполагая, что стандартный объектив, стандартная камера, то есть установка может быть смоделирована как камера с точечным отверстием . Это не работает с наклоном / сдвигом, и, возможно, не с широкоугольными объективами (если вы хотите узнать о них, мы могли бы решить это).
В компьютерном зрении часто вычисляются внутренние свойства камер. Внутренний, потому что они относятся к настройкам камеры внутри камеры. Внешние свойства - это ориентация и положение. Внутренних свойств несколько, среди них увеличение. Мое решение:
калибровка
Калибровка в CV в основном выполняется с использованием шахматной доски. Вы делаете несколько (~ 10) фотографий этого рисунка с разных позиций и расстояний. Алгоритм работает тогда следующим образом:
Теоретически я бы порекомендовал для этого OpenCV, для этого есть пример кода. Но, возможно, это не слишком практично (для этого вам нужно установить OpenCV и, возможно, немного изменить код). Есть, вероятно, другие решения, которые делают это.
Расчет фокусного расстояния
Результатом шага калибровки является матрица K (называемая внутренней матрицей). Он отображает трехмерные точки в системе координат камеры на однородные двухмерные точки на плоскости изображения.
Мы заботимся только об \ альфа здесь. Значение p_x составляет примерно половину ширины сенсора в пикселях, аналогично для p_y, оно относится к тому месту, где главный луч пересекает плоскость изображения. Интересно, что моя дешевая камера телефона нарушает это намного больше, чем хорошая зеркальная камера, или даже дорогая веб-камера, или камера Iphone 4.
Тогда альфа связана с фокусным расстоянием. \ alpha = f m. m - количество пикселей на единицу расстояния в координатах изображения. f - фокусное расстояние. Но обратите внимание: это в модели камеры с точечным отверстием, поэтому расстояние между плоскостью изображения и точечным отверстием камеры. Я не уверен, как найти фокусное расстояние, о котором думают фотографы.
альтернатива
Кто-то разместил ссылку о другом подходе: http://www.bobatkins.com/photography/technical/measuring_focal_length.html В статье «Легкий путь» предлагается другой метод. Учитывая две звезды, посмотрите на расположение звезд и вычислите угол между ними. Затем посмотрите, как ваша камера измеряет этот угол. Прочитайте ссылку для полного прогона.
Недостатком этого является то, что он не будет работать с любым фокусным расстоянием, а будет фокусироваться только на бесконечности. С другой стороны, мой подход не будет работать в бесконечности. Или относитесь к 500 м как к бесконечности, покупайте кукурузное поле и косите на нем шахматную доску, арендуйте самолет и фотографируйте с высоты 500 м ...
источник
Рассчитайте увеличение M объектива, используя объект и размер изображения. С помощью M и расстояния до объекта можно рассчитать фокусное расстояние объектива.
источник
Я посмотрел на «Простой метод» Боба Аткинса, но он оставляет вам возможность поработать с некоторыми астро-данными.
Моя версия его метода содержит всю информацию и ссылки, а также пошаговые инструкции и должна быть значительно проще для новичков в реализации.
http://www.pentaxforums.com/forums/pentax-lens-articles/169225-using-2-stars-determine-actual-focal-length-lens-distance.html
источник
Вы можете установить объектив на отдых, как на книгу, таким образом, делая грубую оптическую скамью. Хорошо освещать цель. Лучший правитель. Отрегулируйте объектив так, чтобы изображение линейки попадало на экран белой бумаги.
Беритесь за расстояния, пока изображение линейки не станет «в натуральную величину». Вы знаете, 1: 1 иначе называется «увеличение один». Используя другую линейку, измерьте расстояние между отметками на изображении проецируемого правила. Использование двух одинаковых линейок помогает. Теперь установите необходимое увеличение 1: 1.
Теперь измерьте расстояние между целью и экраном. Разделите это значение на 4. Этот ответ дает фокусное расстояние объектива.
источник