2016-09-09 7 views
0

Я в настоящее время модель выравнивания камеры установлена ​​в камере в качестве координат происхождения:Перехода от камеры-ориентированных координат в шаблон-ориентированные координаты

http://i.imgur.com/UnSCAvG.png

и, так как камера неподвижна Я пытаюсь преобразовать система с рисунком фиксированной модели

http://i.imgur.com/OKunxwA.png

Matlab достаточно хорошо, чтобы показать его мне, но увы там я не нашел никакого способа, чтобы извлечь данные, если это не на модели с фиксированной камерой. Это должен быть простой вопрос применения обратного перевода и вращения для изменения между системами, но, к сожалению, это не работает, и я не понимаю, почему.

oldpoint = [0 0 0 1]'; 

translation = ([1 0 0 18.1043121043; 0 1 0 31.092351038; 0 0 1 -80.0610295707; 0 0 0 1]); 
rotation = [eul2rotm([0.0957937074 -0.0234017529 -0.037084526]) zeros(3,1); 0 0 0 1]; 


newpoint = translation * point; 

newpoint = rotation * newpoint; 

Я пробовал несколько различных альтернативы это, но до сих пор никто не приблизительные координаты я пытаюсь получить.

ответ

0

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

clc; 
clear; 
%% 
oldpoint = [0 0 0 1]'; 

newpoints = zeros(13,4); 

i = 1; 
while(i<= length(translations)) 
    trans = translations(i,:); 
    rota = rotations(i,:); 

    display(trans); 
    display(rota); 

    translation = ([1 0 0 -trans(1); 0 1 0 -trans(2); 0 0 1 trans(3); 0 0 0 1]); 
    rotation = [rotationVectorToMatrix([-rota(1) -rota(2) -rota(3)]) zeros(3,1); 0 0 0 1]; 

    newpoint = translation * oldpoint; 
    newpoint = rotation * newpoint; 

    newpoints(i,:) = newpoint; 
    i = i + 1; 
end 

 Смежные вопросы

  • Нет связанных вопросов^_^