I am trying to adapt the example in the MATLAB documentation on Structure From Motion From Multiple Views (https://uk.mathworks.com/help/vision/examples/structure-from-motion-from-multiple-views.html). However, I'm not sure I understand the section on dense reconstruction. Mainly the part shown below where it seems that points from the first view are tracked across all other views:
% Track the points across all views.
for i = 2:numel(images) % Read and undistort the current image.
I = undistortImage(images{i}, cameraParams); % Track the points.
[currPoints, validIdx] = step(tracker, I); % Clear the old matches between the points.
if i < numel(images) vSet = updateConnection(vSet, i, i+1, 'Matches', zeros(0, 2)); end vSet = updateView(vSet, i, 'Points', currPoints); % Store the point matches in the view set.
matches = repmat((1:size(prevPoints, 1))', [1, 2]); matches = matches(validIdx, :); vSet = updateConnection(vSet, i-1, i, 'Matches', matches);end
To create a 3D reconstruction shouldn't you track points from all views, as points in the first image may not be visable in every other image?
Thank you in advance!
Best Answer