
01.12.2010, 16:27
|
|
Новичок
|
|
Регистрация: 20.10.2010
Сообщений: 11
|
|
|
3D метка
Доброго времени суток! У меня есть так сказать "метка" в реально мире. Я уже могу найти ее на изображении и получить четыре точки ограничивающие ее.
НА изображении приведен скриншот работы программы. там как раз цветными линиями и выделена метка. Линии построены по 4-м этим точкам. Так вот. У меня есть квадрат в трехмерном пространстве. МНе нужно его расположить так же, как метака расположена относительно камеры в реальном мире. Я пытался что-то сотворить, но не очень-то получилось. Как можно это осуществить? Заранее спасибо!
|
|

01.12.2010, 19:25
|
|
Местный
|
|
Регистрация: 21.09.2006
Адрес: Новосибирск
Сообщений: 1,368
|
|
|
Вопрос не очень понятен.
Нужно найти 3-мерные координаты меток?
Для этого требуется минимум 2 снимка с разных точек
|
|

01.12.2010, 21:26
|
|
|
Сообщение от MBo
|
Вопрос не очень понятен.
Нужно найти 3-мерные координаты меток?
|
Я так понял, что да, т.е. нужно обратить операцию проецирования с 3d в 2d.
|
Цитата:
|
|
Для этого требуется минимум 2 снимка с разных точек
|
ну, зависит от модели трехмерного мира.
если воспользоваться не перспективным преобразованием, а ортогональным, т.е. вида (x', y') = (матрица 2x4) * (x, y, z, 1), то достаточно кажется и одного. 8 неизвестных и 8 уравнений: накладываем 4-е ограничения на длину стороны - получаем ромбы, +1 ограничение что есть прямой угол дает квадраты, +1 ограничение что все точки лежат на одной плоскости, +2 ограничения: говорим? что один угол в точке (0,0,0). Вроде сходится.
|
|

01.12.2010, 21:49
|
|
Новичок
|
|
Регистрация: 20.10.2010
Сообщений: 11
|
|
Сообщение от MBo
|
Вопрос не очень понятен.
Нужно найти 3-мерные координаты меток?
|
Да, вы совершенно правы. Именно это и требуется сделать.
Сообщение от MBo
|
|
Для этого требуется минимум 2 снимка с разных точек
|
Да, есть такая возможность. Но я видел рабочие примеры, где все реализовывалось с помощью одной камеры (приложение для айфона).
Сообщение от гость
|
|
если воспользоваться не перспективным преобразованием, а ортогональным.....
|
Вот не совсем понял весь этот абзац. Можно чуть-чуть поконкретнее?
|
|

02.12.2010, 00:59
|
|
|
|
ну есть два основных типа решения задачи "спроецировать 3-х мерную точку на 2-х мерну. плоскость": ортогональное(ортографиче кое) и перспективное проецирование. Ищи в гугле описание.
Грубо говоря, математически, ортогональное имеет вид (x, y) = A*(x,y,z,1). А перспективное: (x/w,y/w,w) = A*(x,y,z,1), где A - какая-то матрица.
Ортогональное похуже, но в твоей задаче у него большой плюс над перспективным - оно характеризуется меньшим числом параметров. Поэтому как я написал выше, для него можно составить систему уравнений и попаться ее решить.
|
|

02.12.2010, 01:04
|
|
|
|
ошибка:
>(x/w,y/w,w) = A*(x,y,z,1)
(x*w, y*w, w) = A*(x,y,z,1)
(этот прием зовется однородные координаты)
ну и слева и справа разные x,y, но да это мелочь
|
|

02.12.2010, 15:13
|
|
Новичок
|
|
Регистрация: 20.10.2010
Сообщений: 11
|
|
Сообщение от гость
|
ошибка:
>(x/w,y/w,w) = A*(x,y,z,1)
(x*w, y*w, w) = A*(x,y,z,1)
(этот прием зовется однородные координаты)
ну и слева и справа разные x,y, но да это мелочь
|
Благодарю! Но что здесь w?
Слева, как я понял, координаты в 2d пространстве, а справа - 3d, так?
Еще вопрос. Какой может быть матрица A, примерно? Заранее спасибо!
|
|

02.12.2010, 15:21
|
|
|
Сообщение от TacoBell
|
|
Благодарю! Но что здесь w?
|
Масштаб. Т.е. векторы (12, 34, 1), (1200, 3400, 100), (1.2, 3.4, 0.1).. - суть одна и та же двухмерная точка (12, 34). Этот математический прием, как я уже сказал, называется "однородные координаты".
|
Цитата:
|
|
Слева, как я понял, координаты в 2d пространстве, а справа - 3d, так?
|
ну да
|
Цитата:
|
|
Еще вопрос. Какой может быть матрица A, примерно? Заранее спасибо!
|
ну вот ты ее и находишь из решения системы уравнений. неизвестные - коэффициенты этой матрицы.
|
|
| Опции темы |
Поиск в этой теме |
|
|
|
| Опции просмотра |
Линейный вид
|
|
| |