MATLAB Answers

Create a cameraParameters object with more than one Intristic Matrix?

3 views (last 30 days)
BLEARGH BUNY
BLEARGH BUNY on 25 Nov 2017
Answered: Qu Cao on 7 Nov 2019
I want to do bundle adjustment.
In the SfM problem:
After Projective + Euc Recontruction, you get a bunch of Projection Matrices and 3D points and you pass than onto do bundle adjustment.
I have done Proj + Euc and have such a number of Projection Matrices and want to use Matlab's inbuilt bundleAdjuster to do so, problem is you can only pass a single intristic matrix to it, can someone tell me how to pass more than one intristic matrix to the cameraParameter initializer to give to the bundleAdjuster?
vSet = viewSet;
R = [];
T = [];
for i = 1:m
[r,t,~] = get_camera_para();
vSet = addView(vSet,i,'Orientation',r,'Location',t');
R(i,:) = rotationMatrixToVector(r);
T(i,:) = t';
end
cPose = poses(vSet);
W = get_camera_para_intristi(P(1:3,:)); %%only using first camera for now
cPara = cameraParameters('IntrinsicMatrix',W','RotationVectors',R,'TranslationVectors',T);
[X_final,P_final,reproj] = bundleAdjustment(X,tracks,cPose,cPara);
I want to do something like
for i = 1:m
W = get_W
camP = cameraParameter( add_new_W_to_camera_param_somehow );
end
bundleAdjust( bundle_adjust_using_all_camera_params / intristic_matrices );

  0 Comments

Sign in to comment.

Answers (1)

Qu Cao
Qu Cao on 7 Nov 2019
Since R2019b, you can use an array of cameraIntrinsics objects to represent the intrinsic parameters of a bunch of different cameras:

  0 Comments

Sign in to comment.

Sign in to answer this question.