Есть ли какой-либо алгоритм для определения 3-го положения в таком случае? (изображения ниже)

Таким образом, в первую очередь, у меня есть такое изображение (и конечно у меня есть все координаты точек в 2-м, таким образом, я могу повторно создать строки и проверить, где они пересекают друг друга),

alt text
(источник: narod.ru)

Но эй, у меня есть другое Изображение тех же строк (я знаю, что thay - то же), и новые провода моих точек как на этом изображении alt text
(источник: narod.ru)

Так... теперь Имея точки (провода) на первом изображении, Как я могу определить плоское вращение и глубину Z на втором изображении (принимающий сначала центр был в точке (0,0,0) без вращения)?

5
задан Glorfindel 11 July 2019 в 10:05
поделиться

4 ответа

Позвольте мне сказать сразу: это сложная проблема. Есть причина, по которой на связанный вопрос Дэна Стори нет ответа. Позвольте дать объяснение тем, кто хочет нанести удар. Надеюсь, я ошибаюсь в том, насколько это сложно.

Я предполагаю, что вам известны 2D-координаты экрана и матрица проекции / перспективы. Вам нужно знать хотя бы это (если вы не знаете матрицу проекции, по сути, вы используете другую камеру, чтобы смотреть на мир). Назовем каждую пару координат 2D экрана (a_i, b_i) , и я предполагаю, что матрица проекции имеет вид

P = [ px  0  0  0 ]
    [ 0   py 0  0 ]
    [ 0   0  pz pw]
    [ 0   0  s  0 ], s = +/-1

Почти любая разумная проекция имеет такую ​​форму. Работая с конвейером рендеринга, вы обнаружите, что

a_i = px x_i / (s z_i)
b_i = py y_i / (s z_i)

, где (x_i, y_i, z_i) - исходные трехмерные координаты точки.

Теперь предположим, что вы знаете свою форму в наборе канонических координат (как хотите), так что вершины равны (x0_i, y0_i, z0_i) . Мы можем расположить их как столбцы матрицы C . Фактические координаты формы - это жесткое преобразование этих координат.Аналогичным образом организуем фактические координаты в виде столбцов матрицы V . Тогда они связаны соотношением

V = R C + v 1^T             (*)

, где 1 ^ T - вектор-строка из единиц правильной длины, R - это матрица ортогонального вращения жесткого преобразования, а v - вектор смещения преобразования.

Теперь у вас есть выражение для каждого столбца V сверху: первый столбец {s a_1 z_1 / px, s b_1 z_1 / py, z_1} и т. Д. на.

Вы должны решить набор уравнений (*) для набора скаляров z_i и жесткое преобразование, определенное R и v .

Трудности

  • Уравнение нелинейно относительно неизвестных, включая частные R и z_i
  • . До сих пор мы предполагали, что вы знаете, какие 2D координаты соответствуют каким вершинам исходная форма (если ваша форма квадратная, это не проблема).
  • Мы предполагаем, что решение вообще существует; если в 2D-данных есть ошибки, то трудно сказать, насколько хорошо будет выполнено уравнение (*) ; преобразование будет нежестким или нелинейным.
2
ответ дан 14 December 2019 в 01:05
поделиться

Это называется (цифровой) фотограмметрии. Начать поиск в Google.

1
ответ дан 14 December 2019 в 01:05
поделиться

Если вы действительно интересуетесь такого рода проблемами (которые часто встречаются в компьютерном зрении, отслеживании объектов с помощью камер и т. Д.), следующая книга содержит подробное описание:

Ма, Соатто, Косецка, Састри, Приглашение к трехмерному зрению , Springer 2004.

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

1
ответ дан 14 December 2019 в 01:05
поделиться

То, что вы пытаетесь найти, называется матрицей проекции . Для определения точной обратной проекции обычно требуется, чтобы у вас были твердо установленные координаты как в исходном, так и в целевом векторах, которые изображения выше не дадут вам. Однако вы можете приблизительно использовать положение пикселей.

Эта ветка даст вам базовое пошаговое руководство по методам, которые вам необходимо использовать.

5
ответ дан 14 December 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: