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

6 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.

Community Treasure Hunt

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

Start Hunting!

Translated by