1.函数的作用GetFeaturesInArea
该函数主要通过初始帧的特征点的坐标在当前帧对应的坐标上查找相对应的特征点。
2.代码解析
vector<size_t> vIndices;
vIndices.reserve(N);
// 搜索半径
float factorX = r;
float factorY = r;
定义了存储该出初始帧的特征点在当前帧找到范围内的特征点,还定义搜索半径
const int nMinCellX = max(0, (int)floor((x - mnMinX - factorX) * mfGridElementWidthInv));
// 如果最终求得的圆的左边界所在的网格列超过了设定了上限,那么就说明计算出错,找不到符合要求的特征点,返回空vector
if (nMinCellX >= FRAME_GRID_COLS)
{
return vIndices;
}
// 计算圆所在的右边界网格列索引
const int nMaxCellX = min((int)FRAME_GRID_COLS - 1, (int)ceil