Как получить координаты объекта по фоторгафии?

Конкретнее вопрос — с помощью каких математических инструментов можно решить такую задачу?

b03feccd855248cfaf0ba1e4d311bbfd.jpg

Имеется две фотографии объекта (верхний наличник) снятые с двух ракурсов.

На фотографиях, также, присутствует эталон системы координат с размеченными единицами по осям X, Y, Z и началом координат «0» (коробка внизу).

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

Фото 1 Фото 2
x0 y0 x1 y1
X) 59 34 94 -10
Y) 1 -74 6 -83
Z) -54 32 35 55
1) -77 758 -14 862
2) -99 788 -45 890
3) 175 732 469 919
4) 163 715 437 886

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

Размер единицы эталона: 20 см.

Реальные размеры наличника для проверки формул:
верхняя сторона: 98,5 см
нижняя сторона: 86,5 см
боковые стороны: 5,5 см
  • Вопрос задан
  • 494 просмотра
Пригласить эксперта
Ответы на вопрос 2
Итак, прежде всего мы можем говорить о наличии двух систем координат - мировой и наблюдателя (view, если в терминах графики). Любое преобразование из трехмерной мировой в трехмерную СК наблюдателя можно осуществить с помощью некоторой матрицы V размера 4x4. Т.е.:
(xv, yv, zv, 1) = V * (xw, yw, zw, 1)
где (xv, yv, zv) - координаты наличника на фото, а xw, yw, zw - реальные, которые нам надо получить для расчета размеров.
Есть две задачи:
1) вычислить V
2) т.к. zv у нас нет (в фотоаппарате нет дальномера), то нужно будет его определять по смещению на двух фотографиях. Тогда можно говорить о ДВУХ матрицах V1 и V2, и решить систему уравнений:
(xv1, yv1, zv1, 1) = V1 * (xw1, yw1, zw1, 1)
(xv2, yv2, zv2, 1) = V2 * (xw2, yw2, zw2, 1)
Неизвестные у нас: zv1, zv2; xw1, yw1, zw1; xw2, yw2, zw2. По идее, уравнений тоже будет 8 после раскрытия операции умножения матрицы, так что система должна решаться (конечно если V1 и V2 уже найдены)
Искать V1 и V2 надо, очевидно, по коробке. Для этой коробки известны мировые координаты, и координаты на фотографии. Т.е. в выражении:
(xv, yv, zv, 1) = V * (xw, yw, zw)
Неизвестных у вас: zv и все элементы матрицы, которых 16 штук (возможно меньше, надо подумать что точно из себя представляет эта матрица, включающая перпспективную проекцию). По идее можно набрать нужное количество эталонных точек на коробке, чтобы найти все элементы матрицы.
Ответ написан
Zarinov
@Zarinov Автор вопроса
Спасибо за конкретную наводку, теперь виден ясный свет в конце тоннеля! А то я ломал голову с какой стороны подступиться.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы