add to preamble/specialization
parent
a2109a2437
commit
2434dc8ab7
|
@ -94,6 +94,10 @@ class SfmTrack2d {
|
|||
}
|
||||
};
|
||||
|
||||
using SfmTrack2dVector = std::vector<gtsam::SfmTrack2d>;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief Generates point tracks from connected components in the keypoint matches graph.
|
||||
*/
|
||||
|
|
|
@ -49,10 +49,20 @@ class SfmTrack2d
|
|||
bool hasUniqueCameras();
|
||||
};
|
||||
|
||||
class SfmTrack2dVector {
|
||||
SfmTrack2dVector();
|
||||
SfmTrack2dVector(const gtsam::SfmTrack2dVector& other);
|
||||
void push_back(const gtsam::SfmTrack2d& keypoints);
|
||||
size_t size() const;
|
||||
bool empty() const;
|
||||
void clear();
|
||||
gtsam::SfmTrack2d at(const size_t& index) const;
|
||||
};
|
||||
|
||||
|
||||
class DsfTrackGenerator {
|
||||
DsfTrackGenerator();
|
||||
std::vector<gtsam::SfmTrack2d> generate_tracks_from_pairwise_matches(
|
||||
const gtsam::SfmTrack2dVector generate_tracks_from_pairwise_matches(
|
||||
const gtsam::MatchIndicesMap& matches_dict,
|
||||
const gtsam::KeypointsList& keypoints_list);
|
||||
};
|
||||
|
|
|
@ -152,7 +152,8 @@ if(GTSAM_UNSTABLE_BUILD_PYTHON)
|
|||
gtsam::CameraSetCal3Fisheye
|
||||
gtsam::KeyPairDoubleMap
|
||||
gtsam::MatchIndicesMap
|
||||
gtsam::KeypointsList)
|
||||
gtsam::KeypointsList
|
||||
gtsam::SfmTrack2dVector)
|
||||
|
||||
|
||||
pybind_wrap(${GTSAM_PYTHON_UNSTABLE_TARGET} # target
|
||||
|
|
|
@ -26,6 +26,7 @@ PYBIND11_MAKE_OPAQUE(
|
|||
std::vector<gtsam::BinaryMeasurement<gtsam::Rot3>>);
|
||||
PYBIND11_MAKE_OPAQUE(
|
||||
std::vector<gtsam::Keypoints>);
|
||||
|
||||
PYBIND11_MAKE_OPAQUE(
|
||||
std::vector<gtsam::SfmTrack2d>);
|
||||
|
||||
PYBIND11_MAKE_OPAQUE(gtsam::MatchIndicesMap);
|
|
@ -37,3 +37,6 @@ py::bind_vector<
|
|||
std::vector<std::pair<size_t, gtsam::Point2>>>(
|
||||
m_, "SfmMeasurementVector"
|
||||
);
|
||||
py::bind_vector<
|
||||
std::vector<gtsam::SfmTrack2d> >(
|
||||
m_, "SfmTrack2dVector");
|
|
@ -8,7 +8,7 @@ import unittest
|
|||
import numpy as np
|
||||
|
||||
import gtsam
|
||||
from gtsam import DsfTrackGenerator, Keypoints, KeypointsList, MatchIndicesMap
|
||||
from gtsam import DsfTrackGenerator, IndexPair, Keypoints, KeypointsList, MatchIndicesMap
|
||||
from gtsam.utils.test_case import GtsamTestCase
|
||||
|
||||
|
||||
|
@ -28,8 +28,8 @@ class TestDsfTrackGenerator(GtsamTestCase):
|
|||
|
||||
# For each image pair (i1,i2), we provide a (K,2) matrix of corresponding image indices (k1,k2).
|
||||
matches_dict = MatchIndicesMap()
|
||||
matches_dict[gtsam.IndexPair(0, 1)] = np.array([[0, 0], [1, 1]])
|
||||
matches_dict[gtsam.IndexPair(1, 2)] = np.array([[2, 0], [1, 1]])
|
||||
matches_dict[IndexPair(0, 1)] = np.array([[0, 0], [1, 1]])
|
||||
matches_dict[IndexPair(1, 2)] = np.array([[2, 0], [1, 1]])
|
||||
|
||||
tracks = DsfTrackGenerator().generate_tracks_from_pairwise_matches(matches_dict, keypoints_list)
|
||||
assert len(tracks) == 3
|
||||
|
|
Loading…
Reference in New Issue