i tried to use bundleAdjustment function, but error is The number of 3-D points must match the number of point tracks.

2 views (last 30 days)
clc,clear;
object_point1=[0, 0, 0;172,0.032780255,0;172.0781265,173.7997724,0;1.702793969,174.9936174,0];
plane_point1=[738.1912551,409.5459538;2046.614139,409.7953168;2047.208456,1731.659904;751.1445958,1740.741614];
object_point2=[0, 0, 0;172,0.032780255,0;172.0781265,173.7997724,0;1.702793969,174.9936174,0];
plane_point2=[731.455441,409.3671522;2040.067034,409.4946591;2040.779325,1731.560572;744.5253902,1740.492964];
% relative orientation and location
orientation=[0.999999693765780,7.88580585341823e-05,-0.000778620415985476;-7.90800597903021e-05,0.999999956233700,-0.000285094618482966;0.000778597899900008,0.000285156104526290,0.999999656235594];
location=[-0.891847856524883,-0.0195992424687006,-0.0356707842611286]';
M=[orientation,location];
intrinsic=[5175.16,0,1102.43;0,5210.63,1139.06;0,0,1];
% pointstrack
viewIDs=[1 2 3 4];
track=pointTrack(viewIDs,plane_point1);
[xyzRefinedPoints,refinedPoses,pointindex]=bundleAdjustment(object_point1,track,M,intrinsic);
错误使用 vision.internal.bundleAdjust.validateAndParseInputs>validatePointTracks (第 136 行)
The number of 3-D points must match the number of point tracks.

Answers (1)

Walter Roberson
Walter Roberson on 12 Aug 2022
You need to pass in a vector of pointTrack objects, but you are only passing in one.

Categories

Find more on 3-D Scene Control 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!