Как получить координаты объекта по фоторгафии?
Итак, прежде всего мы можем говорить о наличии двух систем координат - мировой и наблюдателя (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 штук (возможно меньше, надо подумать что точно из себя представляет эта матрица, включающая перпспективную проекцию). По идее можно набрать нужное количество эталонных точек на коробке, чтобы найти все элементы матрицы.
Спасибо за конкретную наводку, теперь виден ясный свет в конце тоннеля! А то я ломал голову с какой стороны подступиться.