Умножение матрицы Python Numpy для преобразования координат дает неправильный результатPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Умножение матрицы Python Numpy для преобразования координат дает неправильный результат

Сообщение Anonymous »

Вот мой код: я выполняю преобразование координат в наборе 3D -точек. T < /code> - моя
4 × 4 матрица преобразования, которая всегда удовлетворяет форме

Код: Выделить всё

[[R , t], [ 0, 1]]
(я уверен в этом). Точки - это набор точек, которые мне нужно преобразовать, с формой (M, 3)
, где m обычно очень большой (1k ~ 2K).
Моя проблема заключается в следующем: когда я выполняю преобразование координат с использованием метода 1 (однородные координаты), результат является неверным. В частности, последнее число некоторых преобразованных точек (points_local_homogenous) не равно 1, это неверно. Однако, когда я использую Метод 2 , все результаты верны.
# Method 1: wrong result.
ones = np.ones((points.shape[0], 1))
points_homogeneous = np.hstack((points, ones))
points_local_homogeneous = (T @ points_homogeneous.T).T
points_local = points_local_homogeneous[:, :3]
# Method 2: Good results.
points_local= (T[:3, :3] @ points.T).T + T[:3, 3]
< /code>
Существует также странное явление, которое отражает проблему: когда я сначала выполняю умножение матрицы, а затем извлекаю точку, результат неверен. Но когда я сначала извлекаю точку, а затем выполняю умножение матрицы, результат верен. < /P>
>> (T @ points_homogeneous.T).T[547]
array([-15.44923687, -0.03295934, -0.07585889, -15.45439878])
>> T @ points_homogeneous[547]
array([6.58938647, 3.43626129, 2.84996901, 1. ])
< /code>
Может ли кто -нибудь помочь мне понять причину этого? Любое руководство будет очень ценится!

Подробнее здесь: https://stackoverflow.com/questions/795 ... -a-wrong-r
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Умножение матрицы Python Numpy для преобразования координат дает неправильный результат
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Умножение матрицы Python Numpy для преобразования координат дает неправильный результат
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Умножение матрицы Python – размер матрицы результата
    Anonymous » » в форуме Python
    0 Ответы
    109 Просмотры
    Последнее сообщение Anonymous
  • Лучший способ вычислить умножение логической матрицы в numpy
    Anonymous » » в форуме Python
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Действителен ли этот тест? torch vs numpy vs tinygrad умножение матрицы 10000 на 10000 (ЦП)
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»