How can I store the feature descriptors for all 3D points found in Structure from Motion?
Ältere Kommentare anzeigen
I am running the example on Structure from Motion from MathWorks. I have managed to find 3D points from my 2D images, but I also need to store feature descriptors for each 3D point, so that I can perform 3D-2D matching later on. How do I go about this? I can save the features for each image separately, but I don't know how to later match them to each 3D point.
Antworten (1)
Qu Cao
am 20 Apr. 2021
0 Stimmen
You can use imageviewset to store the feature points associated with each view and the connections between the views. You can also use worldpointset to store the correspondences between 2-D image points and 3-D world points.
4 Kommentare
Markus Iversflaten
am 20 Apr. 2021
pointTrack doesn't store the index of the image point. A workaround is to find the index by comparing the image [x, y] positions. Note that the positions are stored in the imageviewset. Since pointTrack stores both the view ID and the image point position, you should be able to identify the image point corresponding to a view in the pointTack. Basically, you need to do something like the following:
vSet = imageviewset;
% Add views
tracks = findTracks(vSet);
% Find the image point of the first view in the first point track
find(tracks.Points(1,:) == vSet.Views.Points{viewId})
We understand this is a pain. We will consider enahnce this feature in a feature release.
Markus Iversflaten
am 22 Apr. 2021
Kategorien
Mehr zu Structure from Motion finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!