Я разместил этот вопрос в Переполнении стека, но кто-то предположил, что этот сайт может мне помочь.
Я делаю проект колледжа, в котором пытаюсь вычислить фокусное расстояние камеры по фотографии. Этот проект является частью моего последнего курса по вычислительной технике (поэтому я предположил, что Stack Overflow будет лучшим местом для обсуждения)
Я использую исчезающие линии, определенные пользователем, чтобы попытаться вычислить фокусное расстояние. скажем, у вас есть куб, пользователь может выбрать 3 стороны, чтобы пересечь. Для каждой стороны 2 линии нарисованы до бесконечности. Где 2 линии пересекаются = точка пересечения. Это делается для всех трех сторон, давая 3 точки пересечения. Затем эти точки используются для рисования нового треугольника, и от этого треугольника до фокусного расстояния можно рассчитать, как показано в этом исследовании
. Но мои ценности далеко. Для этого изображения фокусное расстояние известно как 18 мм, но полученное значение равно 478,634 ....

Есть ли у кого-нибудь опыт решения подобных проблем?
Я также сталкивался с этой формулой на этом веб-сайте. Кто-нибудь знает, что
alphaX (fx = (imageWidth) 2 * tan ( alphaX ))
будет представлять.
Любая помощь будет оценена
UPDATE:.
Я сделал несколько снимков, чтобы показать, как я вычисляю фокусное расстояние (изображения не в масштабе или размере). Начиная с фотографии куба
, я вытягиваю каждую из трех сторон, пока они не пересекаются (показано зелеными точками). Затем, используя эти точки пересечения, я строю прямоугольник, как показано здесь
. Затем я вычисляю орто-центр треугольника. Затем, используя формулу здесь , я рассчитываю фокусное расстояние, как показано здесь
. В моем приложении фокусное расстояние - это просто значение (целое число), которое вычисляется из квадратного корня из длины пересекающихся точек (IP1) до центра, умноженной на длину от центра до противоположной средней точки (MP2)