解决slam14讲CH11中回环检测字典保存的问题(治标不治本)

回环检测字典保存问题

在高翔slam14讲中,第一段参考程序是用来通过训练已有数据集得到图像的字典,最后有一句程序为

vocab.save("vocabulary.yml.gz");

在运行程序时报错“Program received signal SIGSEGV (Segmentation fault)”,意思是段错误(有多种原因:访问受保护的内存、不存在的内存等)。
在网上查了一下午,尝试了各种方法,尝试了gdb调试、检查程序中指针、向量使用是否错误等一系列方法,最终没有解决。
在迷茫之际,我感觉保存的文件名有点奇怪尝试将程序改为

vocab.save("vocabulary.gz");

程序就不报错了。通过运行图片相似度计算,调用字典,没有报错,程序运行正常。
若有大佬知道为什么这样操作后就能运行,还望指教一下!
解决slam14讲CH11中回环检测字典保存的问题(治标不治本)_第1张图片

你可能感兴趣的:(高翔slam14讲问题记录,计算机视觉,人工智能,c++)