Востановление образа из двух проекций
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [18.97.9.174] |
|
|
правила раздела Алгоритмы

Востановление образа из двух проекций
|
Сообщ.
#1
,
|
|
|
|
Имеется следующая задача:
Если по простому: Две камеры сфотографировали одновременно некий обьект, в результате имеем 2-е картинки одного и того же объекта с разных сторон. Требуется построить объект в трех мерном пространстве, на основе имеющихся 2-х снимков(возможно добавление неких параметров, как известные, например угол между камерами и т.д.) Теперь чуть по подробнее: Даны две плоскости(их уравнения), угол между плоскостями, на плоскостях существуют некие локальные системы координат(некий прямоугольник с фиксированной длиной и шириной(2-е картинки)). Расположения локальных систем координат на плоскостях неизвестно. В локальных системах координат (картинках) существуют общие точки, полученные проекциями из трех мерного пространства, некого обьекта, на данные локальные системы координат (вернее на плоскости в которых лежат эти лок. сист. коорд.). Требуется построить объект в трех мерном пространстве из имеющихся данных. P.S. Желательно решить задачу, подразумевая перспективную проекцию. P.P.S. Если нет желания подумать, можно оставить ссылки на эту тему, буду вам очень признателен. |
|
Сообщ.
#2
,
|
|
|
|
Начинать, пожалуй, надо с простого...
Сначала определиться с одной точкой. Пусть есть точка с координатами R={x,y,z}. И две ее "фотографии". Первая "фотография" это точка R1={x1,y1,z1} лежащая на первой плоскости, вторая фотография - точка R2={x2,y2,z2} лежащая на второй плоскости. По определению, прямая линия между R и R1 есть перпендикуляр к первой плоскости, а прямая линия между R и R2 - перпендикуляр ко второй плоскости. Также, по определению, известны плоскости и координаты R1 и R2, а координаты R - не известны. Ну вот все и просто, пишется уравнение перпендикуляра к первой плоскости проходящего через R1, тоже самое для перпендикуляра ко второй плоскости проходящего через R2. Точка пересечения этих двух прямых линий как раз и даст искомую точку R. Зная как находить точки можно и все остальное найти... |
|
Сообщ.
#3
,
|
|
|
|
Все это понятно, но вы как раз подабрались к тому на чем я застрял, ведь не даром же я упоминал о том, что располажения картинок на плоскостях неизвестно. Отсюда получается, что нужно узнать, во перых, как взаимосвязана локальная система координат (картинка) с плоскостью, в которой она лежит, во вторых преобразовать точку из лок. сист. коорд. в мировые (думаю из первого следует второе).
Вот на этом месте я и застрял:( Может будут какие идеи? |
|
Сообщ.
#4
,
|
|
|
|
Допустим есть две (три, четыре... и т.д.) фотографии , желательно хорошего качества. Создается специальный графический viewer, который показывал бы эти фото. С его помощью можно отмечать мышью "идентичные" точки (скажем, если это фотографии головы человека, идентичными точками будут центры глаз, центр ушей и т.п.) Эти точки соединяются линиями так, чтобы получилось большое количество треугольников. Для примера возьмем треугольник центр лба - центр левого глаза - центр правого глаза. В абсолютных координатах объемного объекта (головы) стороны треугольника на разных фотографиях будут равны т.к. расстояние между глазами не зависит от того, к какой стороны снимают голову. Но на плоских фотографиях, которые у нас есть соотвестствующие стороны в общем случае не будут равны. Зная это расхождение в длинах треугольников можно оценить форму объекта, и соотвественно обработать изображение внутри каждого треугольника (треугольник считать плоскостью). Если есть еще идеи - пишите -leo@mail.ru Туда же можно скинуть и исходники проги, может смогу помочь... |
|
Сообщ.
#5
,
|
|
|
|
Цитата R_Ally, 15.11.02, 02:28:56 Создается специальный графический viewer, который показывал бы эти фото. С его помощью можно отмечать мышью "идентичные" точки ... А иначе никак... Ну разьве что на самом объекте до фотографирования разместить отметки (разноцветные лампочки), так чтоб программа сама смогла потом эти отметки на фотке распознать... Скажем лазером объект подсвечивать в момент фотографирования, ну в смысле, лазерным лучем нарисовать (пусть треугольную) решетку. Эта решетка будет искривленной в соответствии с искривленностью фотографируемой поверхности. Фотография будет представлять собой черный лист со светлыми тонкими линиями - искривленной решеткой... Узлы решетки, думаю, легко распознать. |
|
Сообщ.
#6
,
|
|
|
|
Цитата S.Yu.Gubanov, 15.11.02, 10:55:51 ...Скажем лазером объект подсвечивать... Интересная идея... |
|
Сообщ.
#7
,
|
|
|
|
А веть он правдо интересные вещи говорит!
Но нужно накладавать треугольник на каждый полигон. Предлагаю делать сетку точек (по три одного цвета). При обработке и фотаграфиях большого качества можно вырезать точки (даже видно не будет); Но камеры нужно мин. 2. |
|
Сообщ.
#8
,
|
|
|
|
|
Сообщ.
#9
,
|
|
|
|
даже в школе на уроках черчения восстановаливали деталь по ТРЕМ проекциям.
|
|
Сообщ.
#10
,
|
|
|
|
Деталь есть совокупность простых примитивов-ребер. Не сложнее кривых второго-третьего порядка
|
|
Сообщ.
#11
,
|
|
|
|
Нужно фотографии разбить на линии пометить общие точки общими
остальное все просто |