Добро пожаловать, гость
:: алгоритмы  и методы :: :: олимпиадные задачи :: :: связь :: :: о сайте :: :: форум ::

Форум работает в режиме архива, только для чтения и поиска.
Архив 2004 Архив 2007 Архив 2013

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.12.2010, 17:27
Новичок

Отправить личное сообщение для TacoBell Посмотреть профиль Найти все сообщения от TacoBell
 
Регистрация: 20.10.2010
Сообщений: 11

3D метка
Доброго времени суток! У меня есть так сказать "метка" в реально мире. Я уже могу найти ее на изображении и получить четыре точки ограничивающие ее.



НА изображении приведен скриншот работы программы. там как раз цветными линиями и выделена метка. Линии построены по 4-м этим точкам. Так вот. У меня есть квадрат в трехмерном пространстве. МНе нужно его расположить так же, как метака расположена относительно камеры в реальном мире. Я пытался что-то сотворить, но не очень-то получилось. Как можно это осуществить? Заранее спасибо!
  #2  
Старый 01.12.2010, 20:25
MBo MBo вне форума
Местный

Отправить личное сообщение для MBo Посмотреть профиль Найти все сообщения от MBo
 
Регистрация: 21.09.2006
Адрес: Новосибирск
Сообщений: 1,374

Вопрос не очень понятен.
Нужно найти 3-мерные координаты меток?
Для этого требуется минимум 2 снимка с разных точек
  #3  
Старый 01.12.2010, 22:26
гость

 
Сообщений: n/a

Сообщение от MBo Посмотреть сообщение
Вопрос не очень понятен.
Нужно найти 3-мерные координаты меток?
Я так понял, что да, т.е. нужно обратить операцию проецирования с 3d в 2d.

Цитата:
Для этого требуется минимум 2 снимка с разных точек
ну, зависит от модели трехмерного мира.

если воспользоваться не перспективным преобразованием, а ортогональным, т.е. вида (x', y') = (матрица 2x4) * (x, y, z, 1), то достаточно кажется и одного. 8 неизвестных и 8 уравнений: накладываем 4-е ограничения на длину стороны - получаем ромбы, +1 ограничение что есть прямой угол дает квадраты, +1 ограничение что все точки лежат на одной плоскости, +2 ограничения: говорим? что один угол в точке (0,0,0). Вроде сходится.
  #4  
Старый 01.12.2010, 22:49
Новичок

Отправить личное сообщение для TacoBell Посмотреть профиль Найти все сообщения от TacoBell
 
Регистрация: 20.10.2010
Сообщений: 11

Сообщение от MBo Посмотреть сообщение
Вопрос не очень понятен.
Нужно найти 3-мерные координаты меток?
Да, вы совершенно правы. Именно это и требуется сделать.

Сообщение от MBo Посмотреть сообщение
Для этого требуется минимум 2 снимка с разных точек
Да, есть такая возможность. Но я видел рабочие примеры, где все реализовывалось с помощью одной камеры (приложение для айфона).

Сообщение от гость Посмотреть сообщение
если воспользоваться не перспективным преобразованием, а ортогональным.....
Вот не совсем понял весь этот абзац. Можно чуть-чуть поконкретнее?
  #5  
Старый 02.12.2010, 01:59
гость

 
Сообщений: n/a

ну есть два основных типа решения задачи "спроецировать 3-х мерную точку на 2-х мерну. плоскость": ортогональное(ортографиче кое) и перспективное проецирование. Ищи в гугле описание.

Грубо говоря, математически, ортогональное имеет вид (x, y) = A*(x,y,z,1). А перспективное: (x/w,y/w,w) = A*(x,y,z,1), где A - какая-то матрица.

Ортогональное похуже, но в твоей задаче у него большой плюс над перспективным - оно характеризуется меньшим числом параметров. Поэтому как я написал выше, для него можно составить систему уравнений и попаться ее решить.
  #6  
Старый 02.12.2010, 02:04
гость

 
Сообщений: n/a

ошибка:

>(x/w,y/w,w) = A*(x,y,z,1)
(x*w, y*w, w) = A*(x,y,z,1)

(этот прием зовется однородные координаты)

ну и слева и справа разные x,y, но да это мелочь
  #7  
Старый 02.12.2010, 16:13
Новичок

Отправить личное сообщение для TacoBell Посмотреть профиль Найти все сообщения от TacoBell
 
Регистрация: 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, примерно? Заранее спасибо!
  #8  
Старый 02.12.2010, 16:21
гость

 
Сообщений: n/a

Сообщение от TacoBell Посмотреть сообщение
Благодарю! Но что здесь w?
Масштаб. Т.е. векторы (12, 34, 1), (1200, 3400, 100), (1.2, 3.4, 0.1).. - суть одна и та же двухмерная точка (12, 34). Этот математический прием, как я уже сказал, называется "однородные координаты".

Цитата:
Слева, как я понял, координаты в 2d пространстве, а справа - 3d, так?
ну да

Цитата:
Еще вопрос. Какой может быть матрица A, примерно? Заранее спасибо!
ну вот ты ее и находишь из решения системы уравнений. неизвестные - коэффициенты этой матрицы.
 


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра