Create a cameraParameters object with more than one Intristic Matrix?

2 次查看(过去 30 天)
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 );

回答(1 个)

Qu Cao
Qu Cao 2019-11-7
Since R2019b, you can use an array of cameraIntrinsics objects to represent the intrinsic parameters of a bunch of different cameras:
  2 个评论
yinghui zhu
yinghui zhu 2020-6-18
but how can we pass more than one camera intrinsic as a vector form for bundlesadjustment?
Qu Cao
Qu Cao 2020-6-18
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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 MATLAB Support Package for USB Webcams 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by