Форум программистов, компьютерный форум, киберфорум
Наши страницы
Алгоритмы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
decho
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 4
1

Трансляция точки из одной проекции в другую 3-мерного обьекта в пространстве

19.05.2013, 15:54. Просмотров 654. Ответов 7
Метки нет (Все метки)

Есть такая задача : есть трехмерный обьект в пространстве. Есть несколько фотографии етого обьекта, сделанных под разными углами.
Вопрос: как найти угол между фотографиями, или как пректировать точку с одной фотографии на другую?
Может быть задача и из школьного курса геометрий, да все равно — никак не могу найти ответ. Если ето были бы 2 плоскости, то
тогда легко — дефинируем плоскости по 3 точкам, находим уравнение плоскости, потом находим угол между 2 плоскостями и т.д.
Но в данном случае, имеем дело с 2 или более проекциями одного и того же 3-мерного обьекта в 2-х мерном пространстве.
А конечный результат должен быть как какая то формула, которая транслирует точку из одной проекции в другию только по x и y.
Может кто-то знает как ето сделано в google maps и т.д?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 15:54
Ответы с готовыми решениями:

Найти проекции каждой точки заданного множества в пространстве на заданную прямую
Найти проекции каждой точки заданного множества в трёхмер- ном пространстве на заданную прямую.

Доступ из одной сети в другую от точки А до точки Б без шлюза в точке Б
Здравствуйте уважаемые профессионалы! В сетях не силен поэтому спрашиваю, сильно не ругайте)...

Движения с одной точки в другую
Нужна сделать движения между двомя пустими обєктами. Как реализиривать? Типа Т.Д.

Проекции векторов в пространстве
Здравствуйте! Имеется несколько векторов в пространстве, требуется найти проекции на некоторые...

Количество путей из одной точки в другую
Доброго времени суток. Есть такая задачка: дана матрица, состоящая из нулей и единиц. Требуется...

7
Igor3D
1227 / 594 / 74
Регистрация: 01.10.2012
Сообщений: 2,844
19.05.2013, 20:05 2
В таком виде задача не имеет решения, т.к. фотография не содержит "глубины" (расстояние от камеры до точки неизвестно). Вот если есть доп имедж (часто его называют Z-buffer) - тогда легко
0
decho
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 4
20.05.2013, 12:48  [ТС] 3
А можете подсказать решение с добавлением расстояния до обьекта?
Посмотрел здесь : http://homepages.inf.ed.ac.uk/rbf/CV.../tutorial.html
Вроде то...
Если известен физический размер обьекта , помоему должно получится и без расстояние. По размеру и по длине отрезка вроде можно вычислить расстояние от обьекта до точки , откуда сделана фотография?
0
Igor3D
1227 / 594 / 74
Регистрация: 01.10.2012
Сообщений: 2,844
20.05.2013, 14:53 4
Цитата Сообщение от decho Посмотреть сообщение
Если известен физический размер обьекта , помоему должно получится и без расстояние. По размеру и по длине отрезка вроде можно вычислить расстояние от обьекта до точки , откуда сделана фотография?
Как из реальной точки в мире (x, y, z) получается пиксель?

- точка множится на матрицу камеры

- применяется перспективное преобразование
x_screen = x * focal_len / z;
y_screen = screen_height - y * focal_len / z;

Найти по пикселю точку в мире - просто в обратном порядке: сначала обратное перспективное преобразование, потом умножение на обратную матрицу. Таким образом все сводится к нахождению z

Погуглите "Match moving"
0
decho
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 4
23.05.2013, 17:44  [ТС] 5
Вообщем то поставленная задача имеет решение.
Может Вы не поняли условие, или я не написал очень разборчиво.

Проекция делается через матричное преопразование.
Алгоритм описан тут : http://mmlab.disi.unitn.it/wiki/inde...rithm_and_Tool
Уже разобрался и реализовал изпользуя OpenCV для получения матрицы.
И оттуда же взял код для переобразования через полученную матрицу.
0
Igor3D
1227 / 594 / 74
Регистрация: 01.10.2012
Сообщений: 2,844
23.05.2013, 18:18 6
Цитата Сообщение от decho Посмотреть сообщение
Вообщем то поставленная задача имеет решение.
Может Вы не поняли условие, или я не написал очень разборчиво.

Проекция делается через матричное преопразование.
Алгоритм описан тут : http://mmlab.disi.unitn.it/wiki/inde...rithm_and_Tool
Уже разобрался и реализовал изпользуя OpenCV для получения матрицы.
И оттуда же взял код для переобразования через полученную матрицу.
Какой Вы талантливый В статье речь идет о другой задаче
Given the matching points in the real world and the image plane, our goal is to..
Даны/имеются точки в мире - без них ничего не пляшет. Другое дело там нет параметров камеры - ну если есть точки в мире и на имедже - их можно вычислить
0
decho
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 4
23.05.2013, 18:36  [ТС] 7
Есть такая задача : есть трехмерный обьект в пространстве. Есть несколько фотографии етого обьекта, сделанных под разными углами.
Вопрос: как найти угол между фотографиями, или как пректировать точку с одной фотографии на другую?


Я спрашивал как сделать ето просто.
Набор функции findHomography с 4 точками и соответно perspectiveTransform , делает как раз ето.
Я ничего большего и не хотел.
0
Igor3D
1227 / 594 / 74
Регистрация: 01.10.2012
Сообщений: 2,844
23.05.2013, 18:53 8
Ваш изначальный пост всегда вверху страницы, поэтому цитировать себя жирным шрифтом нет нужды
Цитата Сообщение от decho Посмотреть сообщение
Я спрашивал как сделать ето просто.
Набор функции findHomography с 4 точками и соответно perspectiveTransform , делает как раз ето.
Я ничего большего и не хотел.
А где же Вы возьмете 4 опорные точки в "real world", если, как Вы писали, "есть трехмерный обьект в пространстве"? Впрочем это не мои проблемы, умолкаю
0
23.05.2013, 18:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2013, 18:53

Движение шарика с одной точки в другую
Надо сделать движение шарика с одной точки в другую.

Попасть из одной точки двумерного массива в другую
Создать вектор, в котором генерируются вектора разной длинны (аналог ступенчатого массива), и...

Перемещение объекта из одной точки в другую и обратно
сделал цикл: for (int i = 1; i == 1; i++) { if...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru