वर्तमान में मेरे पास एक कैमरा संरेखण मॉडल है जो मूल निर्देशांक के रूप में कैमरे में सेट है:
http://i.imgur.com/UnSCAvG.png
और, चूंकि कैमरा स्थिर था, मैं सिस्टम को एक पैटर्न-फिक्स्ड मॉडल में बदलने की कोशिश कर रहा था
http://i.imgur.com/OKunxwA.png
मतलाब मुझे यह दिखाने के लिए काफी अच्छा है लेकिन अफसोसजब तक कि यह एक निश्चित-कैमरा मॉडल पर नहीं है मुझे डेटा निकालने का कोई तरीका नहीं मिला। यह अनुवाद के व्युत्क्रम को लागू करने और सिस्टम के बीच बदलने के लिए रोटेशन का एक साधारण मामला होना चाहिए लेकिन दुर्भाग्य से यह काम नहीं कर रहा है और मैं देख सकता हूं "क्यों।
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 № 1दो चीजें गलत हो रही थीं, मतलूब यूलर एंगल्स का इस्तेमाल नहीं कर रहा था और जेड को उल्टा होने की जरूरत थी।
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