Create a cameraParameters object with more than one Intristic Matrix?

2 views (last 30 days)
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 );

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:
  2 Comments
yinghui zhu
yinghui zhu on 18 Jun 2020
but how can we pass more than one camera intrinsic as a vector form for bundlesadjustment?
Qu Cao
Qu Cao on 18 Jun 2020
You mean create an array of cameraIntrinsics object?
You can do the folowing:
intrinsics1 = cameraIntrinsics([800 800], [320, 240], [480 640]);
intrinsics2 = cameraIntrinsics([800 800], [325, 245], [480 640]);
intrinsics = [intrinsics1; intrinsics2]
intrinsics =
2×1 cameraIntrinsics array with properties:
FocalLength
PrincipalPoint
ImageSize
RadialDistortion
TangentialDistortion
Skew
IntrinsicMatrix

Sign in to comment.

Categories

Find more on MATLAB Support Package for USB Webcams in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!