当前位置: 首页>>代码示例>>C++>>正文


C++ KeyFrame::Distance方法代码示例

本文整理汇总了C++中KeyFrame::Distance方法的典型用法代码示例。如果您正苦于以下问题:C++ KeyFrame::Distance方法的具体用法?C++ KeyFrame::Distance怎么用?C++ KeyFrame::Distance使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在KeyFrame的用法示例。


在下文中一共展示了KeyFrame::Distance方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1:

// Finds N closest KeyFrames
std::vector<KeyFrame*> MapMakerBase::NClosestKeyFrames(KeyFrame& kfSrc, unsigned int N)
{
  std::vector<std::pair<double, KeyFrame*>> vScoresAndKFs;
  for (MultiKeyFramePtrList::iterator it = mMap.mlpMultiKeyFrames.begin(); it != mMap.mlpMultiKeyFrames.end(); ++it)
  {
    MultiKeyFrame& mkf = *(*it);

    // Have to iterate through each MultiKeyFrame as well to get KeyFrames
    for (KeyFramePtrMap::iterator jit = mkf.mmpKeyFrames.begin(); jit != mkf.mmpKeyFrames.end(); jit++)
    {
      KeyFrame& kf = *(jit->second);

      if (&kf == &kfSrc)
        continue;

      double dDist = kfSrc.Distance(kf);
      vScoresAndKFs.push_back(std::make_pair(dDist, &kf));
    }
  }

  if (N > vScoresAndKFs.size())  // if we expect too many neighbors
    N = vScoresAndKFs.size();    // reduce numbe that will be returned

  // Sort the first N entries by score
  std::partial_sort(vScoresAndKFs.begin(), vScoresAndKFs.begin() + N, vScoresAndKFs.end());

  std::vector<KeyFrame*> vResult;
  for (unsigned int i = 0; i < N; i++)
    vResult.push_back(vScoresAndKFs[i].second);

  return vResult;
}
开发者ID:wavelab,项目名称:mcptam,代码行数:33,代码来源:MapMakerBase.cpp


注:本文中的KeyFrame::Distance方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。