1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-31 00:03:03 +04:00

Merge pull request #29331 from agrim-rai/slamVO

[GSOC] Added Visual Odometry (VO) for SLAM
This commit is contained in:
Abhishek Gola
2026-07-25 10:34:00 +05:30
committed by GitHub
29 changed files with 2746 additions and 2 deletions
+4
View File
@@ -580,6 +580,10 @@ bool DescriptorMatcher::empty() const
void DescriptorMatcher::train()
{}
void DescriptorMatcher::setImagePairInfo( const std::vector<KeyPoint>&, const std::vector<KeyPoint>&,
Size, Size )
{}
void DescriptorMatcher::match( InputArray queryDescriptors, InputArray trainDescriptors,
std::vector<DMatch>& matches, InputArray mask ) const
{
@@ -15,6 +15,26 @@ namespace cv
LightGlueMatcher::LightGlueMatcher() {}
LightGlueMatcher::~LightGlueMatcher() {}
void LightGlueMatcher::setImagePairInfo(const std::vector<KeyPoint>& queryKpts, const std::vector<KeyPoint>& trainKpts,
Size queryImageSize, Size trainImageSize)
{
Mat qk((int)queryKpts.size(), 2, CV_32F);
for (size_t i = 0; i < queryKpts.size(); ++i)
{
qk.at<float>((int)i, 0) = queryKpts[i].pt.x;
qk.at<float>((int)i, 1) = queryKpts[i].pt.y;
}
Mat tk((int)trainKpts.size(), 2, CV_32F);
for (size_t i = 0; i < trainKpts.size(); ++i)
{
tk.at<float>((int)i, 0) = trainKpts[i].pt.x;
tk.at<float>((int)i, 1) = trainKpts[i].pt.y;
}
setPairInfo(qk, tk, queryImageSize, trainImageSize);
}
#ifdef HAVE_OPENCV_DNN
struct LightGluePairContext