![190509 092002-funtion handle in for loop - MATLAB Answers - MATLAB Central.jpg](https://www.mathworks.com/matlabcentral/answers/uploaded_files/218758/190509%20092002-funtion%20handle%20in%20for%20loop%20-%20MATLAB%20Answers%20-%20MATLAB%20Central.jpeg)
Problem with XYZ points obtained
1 回表示 (過去 30 日間)
古いコメントを表示
Hello,
I'm trying to get the XYZ coordenates of the world using the CameraCalibrator app from 200 segmented images obtained from the capture of an object pointed with a laser line and positioned on a platform that rotates 1.8 degrees (by capture) to subsequently generate a 3d model.
To calculate the calibration matrix with the rotation of the object, I used the following lines of code:
%%
angleX = 0;
angleY = stp*(1.8); >> stp is number of step of the platform
angleZ = 0;
Rx = rotx(angleX); Ry = roty(angleY); Rz = rotz(angleZ);
Rb = Rx*Ry*Rz;
tx = 0; ty = 0; tz = 0;
tb = [tx ty tz];
MPb = [Rb zeros(3,1); tb 1];
Rt = [RotationMatrix; TranslationVector];
MC = Rt*IntrinsicMatrix;
P = MPb*MC;
P = P';
%%
after that, with the points (u, v) obtained from the segmented image, I calculate the XYZ points of the world using the following lines of code:
%%
% (u*P31 - P11)X + (u*P32 - P12)Y + (u*P33 - P13)Z + (u*P34 - P14) = 0
% (v*P31 - P21)X + (v*P32 - P22)Y + (v*P33 - P23)Z + (v*P34 - P24) = 0
for i = 1:length([u,v]) >> this is the cycle only for an image
A = [(u(i)*P(3,1) - P(1,1)) (u(i)*P(3,2) - P(1,2)) (u(i)*P(3,3) - P(1,3));
(v(i)*P(3,1) - P(2,1)) (v(i)*P(3,2) - P(2,2)) (v(i)*P(3,3) - P(2,3))];
b = [-(u(i)*P(3,4)) + P(1,4);
-(v(i)*P(3,4)) + P(2,4)];
x = pinv(A)*b;
XYZ(i,:) = x;
end
%%
When I plot the points obtained (plot_points_XYZ.png), it doesn't resemble the real shape of the object (Cap_cam1_step_01.png).
What am I doing wrong?
Thank you for your help
Rod Hid
P.S: Are the distortion values incorporated into the calculations of the intrinsic matrix, rotation matrix and translation vector delivered by the CameraCalibrator app?
17 件のコメント
darova
2019 年 5 月 17 日
I didn't know those are focal length. Just saw that image and tried to change fx, fy
![ProjectionMatrix.jpg](https://www.cc.gatech.edu/classes/AY2016/cs4476_fall/results/proj3/html/agartia3/ProjectionMatrix.jpg)
回答 (2 件)
参考
カテゴリ
Help Center および File Exchange で Computer Vision Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!