先贴一下接近5个小时的头皮发麻的百度修改过程后,运行的一段视频(孤军奋战的小白太痛苦了)
11月16日
在接近200多次接近300次反复搜索解决bug之后,终于调试出来了。所以在此记录一下,以便后面第二次学习的时候忘记了什么。
问题记录
could not find GTEST
书上好像没讲,或者我看漏了,要安装GTEST和glog库
has no member named “matrix3x4”
根据报错提示改为matrix
has no member named “rotationMatrix”
应该是版本问题,改为“rotationMatrix”
error: static assertion failed: YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES
#define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
我出现的问题是,矩阵维度错误,在include文件夹中,在algorithm.h中,将 Mat34 m = poses[i].matrix3x4();改为Mat44 m = poses[i].matrix3x4();,这个问题主要思考代码中矩阵的参数是什么,我自己认为此处应该是4x4矩阵,理解的可能有问题,就不发原因出来误导各位。
5.“
CV—FILLED” was not declared in this scope
缺少头文件,百度一下就有了
6.
编译时出现virtual memory exhausted: Cannot allocate memory
参考https://blog.csdn.net/taiyang1987912/article/details/41695895
7.
‘CV_GRAY2BGR’ was not declared in this scope
我的是opencv4,改为cv::COLOR_BGRGRAY2
8.
运行时 Invalid number of channels in input image: >
我的错误是单通道图像读取时,仍使用了灰度读取,解决:在viewer.cpp中将灰度读取删除,也就是上面第7个错误删除。
现在看来问题好像不是很多,但是我只看了一遍代码,还没完全理解,改bug确实有些困难。