# Create a cameraParameters object with more than one Intristic Matrix?

4 views (last 30 days)
BLEARGH BUNY on 25 Nov 2017
Commented: Qu Cao on 18 Jun 2020
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();
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);
I want to do something like
for i = 1:m
W = get_W
end

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 CommentsShowHide 1 older comment
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
TangentialDistortion
Skew
IntrinsicMatrix