How can I store the feature descriptors for all 3D points found in Structure from Motion?
Afficher commentaires plus anciens
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.
Réponses (1)
Qu Cao
le 20 Avr 2021
0 votes
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 commentaires
Markus Iversflaten
le 20 Avr 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
le 22 Avr 2021
Catégories
En savoir plus sur Structure from Motion dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!