当我使用 orbslam2 并对其进行修改时,我认为这个问题可能很棘手。orbslam2 在 opencv 中使用 FAST 来检测特征。在 orbslam2 ORBextractor.cc 中,它具有以下行
FAST(mvImagePyramid[level].rowRange(iniY,maxY).colRange(iniX,maxX),vKeysCell,iniThFAST,true);
它运行完全没问题。但是,在我使用这里的代码之后(它将 orbslam 更改为视觉惯性 slam,但不要担心这个......)当我运行视觉惯性 orbslam 时,它不会修改 orbslam 部分。但它会在 FAST 处停止并返回分段错误(核心汇总)。但奇怪的是原始 orbslam 代码中的代码和上面的代码具有完全相同的输入。我打印出 FAST 的输入。这是
[ 18, 19, 20, 21, 21, 24, 26, 27, 26, 26, 28, 27, 27, 28, 28, 27, 26, 26, 27, 24, 26, 25, 28, 28, 28, 29, 31, 31, 32, 33, 32, 30, 28, 28, 26, 23;
19, 23, 23, 24, 24, 27, 26, 29, 29, 30, 32, 34, 29, 31, 31, 28, 31, 30, 32, 30, 29, 28, 30, 31, 31, 34, 35, 34, 35, 35, 33, 34, 32, 30, 26, 24;
27, 27, 30, 29, 26, 28, 27, 30, 30, 33, 31, 30, 28, 31, 31, 32, 31, 31, 33, 32, 32, 29, 31, 32, 31, 33, 34, 34, 36, 35, 35, 33, 33, 31, 27, 23;
29, 31, 32, 32, 34, 30, 31, 32, 33, 31, 29, 29, 30, 31, 30, 31, 31, 30, 31, 32, 31, 32, 34, 32, 31, 33, 34, 33, 35, 33, 34, 35, 34, 32, 27, 24;
32, 31, 33, 35, 35, 34, 32, 31, 30, 29, 28, 27, 29, 30, 30, 32, 30, 31, 30, 31, 31, 32, 35, 35, 35, 35, 35, 35, 36, 34, 33, 33, 33, 31, 29, 23;
32, 31, 34, 35, 35, 33, 33, 31, 29, 28, 29, 30, 30, 29, 29, 28, 31, 30, 31, 30, 30, 32, 35, 35, 35, 34, 34, 34, 35, 34, 33, 33, 33, 31, 27, 23;
31, 33, 33, 33, 34, 32, 31, 33, 31, 32, 29, 30, 31, 28, 30, 31, 31, 30, 30, 32, 32, 31, 33, 32, 33, 35, 33, 34, 35, 33, 32, 35, 31, 31, 28, 25;
34, 33, 32, 32, 33, 32, 34, 31, 33, 31, 31, 33, 31, 31, 33, 32, 33, 31, 33, 32, 34, 33, 34, 35, 38, 36, 34, 33, 33, 35, 35, 32, 31, 28, 27, 23;
30, 32, 30, 31, 32, 32, 31, 32, 31, 31, 32, 32, 34, 33, 34, 36, 36, 38, 35, 37, 37, 36, 37, 40, 36, 37, 35, 32, 32, 33, 31, 30, 28, 29, 27, 22;
33, 32, 29, 31, 32, 32, 30, 31, 33, 31, 33, 34, 34, 38, 38, 37, 39, 37, 37, 35, 37, 36, 37, 36, 37, 36, 35, 31, 33, 34, 30, 32, 30, 29, 28, 24;
33, 33, 32, 31, 31, 29, 33, 33, 34, 33, 35, 34, 35, 36, 38, 37, 39, 36, 37, 37, 36, 36, 38, 36, 36, 34, 36, 35, 32, 34, 34, 32, 34, 32, 28, 24;
33, 32, 31, 32, 30, 32, 34, 32, 30, 33, 36, 35, 35, 35, 39, 39, 40, 36, 38, 39, 40, 39, 40, 39, 38, 39, 37, 33, 35, 34, 33, 34, 33, 35, 29, 25;
33, 34, 34, 34, 34, 34, 33, 36, 37, 37, 37, 37, 39, 40, 39, 40, 40, 39, 38, 37, 41, 40, 40, 41, 40, 41, 38, 37, 37, 36, 35, 34, 35, 31, 28, 24;
32, 34, 34, 33, 35, 36, 34, 39, 39, 38, 38, 40, 41, 40, 41, 38, 38, 41, 41, 39, 41, 41, 40, 39, 42, 40, 41, 39, 38, 37, 38, 37, 35, 30, 30, 25;
35, 34, 34, 34, 36, 38, 38, 40, 39, 39, 43, 41, 41, 40, 38, 40, 40, 41, 39, 40, 40, 40, 39, 40, 40, 41, 40, 40, 38, 38, 37, 36, 34, 32, 28, 24;
38, 35, 36, 34, 35, 33, 34, 37, 38, 38, 38, 39, 39, 41, 40, 40, 40, 40, 39, 41, 40, 43, 41, 41, 42, 42, 42, 39, 39, 39, 40, 36, 36, 30, 28, 23;
39, 40, 37, 38, 40, 37, 37, 37, 36, 37, 39, 38, 40, 39, 39, 40, 40, 41, 40, 42, 41, 40, 40, 41, 40, 39, 42, 39, 40, 41, 36, 36, 34, 32, 29, 25;
37, 38, 38, 41, 38, 39, 37, 38, 38, 39, 41, 40, 40, 39, 39, 39, 42, 41, 39, 41, 40, 43, 41, 41, 40, 41, 42, 39, 42, 38, 37, 35, 34, 30, 26, 23;
38, 39, 39, 39, 38, 37, 39, 40, 40, 41, 40, 41, 40, 42, 38, 39, 40, 39, 40, 43, 42, 39, 40, 41, 38, 40, 39, 40, 40, 38, 35, 35, 35, 31, 28, 25;
39, 39, 39, 38, 41, 41, 39, 39, 40, 39, 41, 41, 41, 41, 40, 40, 39, 40, 40, 40, 40, 41, 41, 40, 39, 39, 40, 38, 40, 36, 36, 36, 34, 33, 28, 24;
38, 39, 39, 39, 39, 39, 40, 38, 39, 39, 42, 41, 41, 40, 40, 38, 40, 39, 38, 41, 42, 42, 39, 39, 40, 37, 40, 39, 37, 38, 36, 35, 34, 32, 31, 25;
40, 38, 37, 39, 38, 41, 40, 40, 38, 40, 42, 43, 44, 40, 40, 40, 37, 41, 40, 41, 41, 41, 40, 39, 42, 43, 40, 39, 37, 38, 36, 37, 35, 33, 30, 25;
38, 38, 39, 38, 40, 39, 40, 39, 41, 42, 40, 39, 42, 40, 40, 38, 38, 43, 41, 39, 40, 40, 40, 40, 41, 39, 41, 42, 37, 37, 37, 36, 35, 32, 31, 24;
40, 38, 39, 40, 39, 40, 40, 40, 41, 40, 40, 41, 42, 39, 38, 38, 39, 40, 41, 42, 40, 40, 42, 42, 39, 42, 41, 43, 40, 37, 37, 39, 36, 35, 31, 27;
38, 39, 40, 40, 40, 39, 41, 42, 39, 39, 41, 42, 41, 42, 42, 39, 42, 41, 42, 42, 43, 42, 41, 42, 41, 43, 42, 41, 38, 38, 37, 36, 36, 33, 31, 25;
40, 40, 41, 40, 40, 39, 41, 41, 41, 41, 43, 43, 41, 42, 41, 42, 41, 44, 44, 44, 43, 43, 43, 44, 43, 42, 42, 43, 40, 39, 40, 35, 38, 37, 32, 28;
42, 41, 41, 42, 40, 41, 41, 43, 44, 42, 42, 44, 42, 41, 43, 44, 44, 41, 43, 45, 44, 46, 43, 44, 44, 43, 43, 41, 42, 39, 39, 38, 39, 34, 33, 28;
42, 40, 43, 41, 42, 41, 42, 44, 44, 42, 44, 44, 43, 42, 44, 43, 43, 42, 44, 44, 46, 44, 43, 45, 44, 43, 44, 44, 43, 41, 38, 39, 37, 35, 31, 28;
43, 41, 40, 43, 43, 42, 44, 44, 43, 43, 43, 44, 44, 43, 43, 43, 44, 44, 44, 43, 43, 43, 43, 44, 45, 42, 43, 45, 48, 41, 40, 39, 37, 33, 31, 29;
42, 42, 43, 43, 42, 42, 42, 44, 44, 42, 46, 42, 44, 45, 44, 45, 44, 43, 42, 43, 44, 43, 44, 41, 42, 42, 43, 45, 40, 43, 38, 38, 37, 35, 33, 28;
41, 41, 43, 41, 42, 42, 42, 41, 42, 43, 43, 44, 45, 44, 45, 43, 45, 45, 44, 44, 44, 43, 44, 43, 41, 40, 43, 42, 40, 44, 39, 39, 37, 35, 33, 28;
39, 41, 41, 41, 43, 41, 43, 44, 44, 42, 44, 45, 46, 44, 46, 45, 45, 45, 44, 46, 45, 45, 45, 45, 43, 43, 40, 41, 40, 41, 40, 39, 36, 35, 33, 28;
42, 41, 42, 44, 43, 42, 45, 45, 42, 43, 44, 44, 46, 44, 42, 43, 42, 44, 43, 43, 43, 42, 44, 46, 42, 42, 39, 42, 40, 41, 39, 37, 36, 35, 33, 28;
41, 43, 42, 44, 44, 43, 44, 42, 41, 44, 42, 44, 46, 42, 42, 41, 40, 41, 43, 41, 42, 44, 45, 43, 42, 43, 43, 41, 41, 40, 40, 38, 39, 37, 32, 29;
41, 41, 41, 43, 42, 41, 43, 42, 42, 43, 45, 44, 45, 43, 40, 38, 32, 32, 41, 41, 42, 41, 42, 44, 43, 44, 44, 43, 42, 41, 41, 38, 37, 35, 32, 30;
40, 42, 42, 43, 41, 41, 42, 40, 42, 41, 44, 44, 44, 44, 42, 35, 31, 30, 36, 43, 44, 45, 43, 42, 42, 42, 44, 44, 42, 41, 38, 36, 36, 33, 32, 29;
36, 41, 40, 41, 42, 41, 43, 42, 40, 43, 42, 44, 42, 42, 44, 38, 33, 36, 40, 42, 42, 41, 42, 40, 40, 42, 42, 42, 40, 37, 38, 37, 37, 34, 34, 31;
39, 40, 40, 41, 42, 41, 43, 43, 41, 42, 42, 42, 42, 43, 43, 40, 38, 40, 38, 41, 40, 40, 42, 43, 42, 44, 44, 43, 41, 40, 39, 37, 38, 35, 34, 30]
nCols: 24 nRows: 14 maxY : 54 maxX: 52 iniY: 16 iniX: 16 iniThFAST is 20
我双重确保每个数字都相同,因此 FAST 具有完全相同的输入。那么可能是什么问题呢?谢谢解答!!