Ubuntu20.04
opencv4.5.5
python3.9
想试一下FFB6D作者用的normalSpeed,看了一下这个应该也是他们团队内做的。
一开始尝试在windows下安装,被.egg折磨了两天,不要给自己找不痛快了。
Ubuntu安装
如果服务器上已经有Opencv(Opencv不是pip或conda安装的opencv-python)了,那么顺着github上给的命令安装应该是没什么问题的。但是最近换了新的服务器,Opencv什么的都没有,需要重新编译opencv+opencv_contrib,注意只编译opencv是不够的,因为normalSpeed中调用了opencv2/rgbd模块的内容,而该模块在opencv_contrib中。
cv4的问题:
1.找不到opencv
cmake完Opencv且设置OPENCV_DIR并source ~/.bashrc后,还是报找不到Opencv的错,可能是CMakeList中指定了Opencv的版本是3.x,将3去掉即可
//fing_package(OpenCV 3 REQUIRED)
fing_package(OpenCV REQUIRED)
2.error: invalid conversion from 'int' to 'cv::AccessFlag' [-fpermissive]
报错来自np2mat/ndarray_converter.cpp,
参考:https://github.com/iterait/hipipe/issues/22
将两处代码中的int替换为cv::AccessFlag
//- UMatData* allocate(int dims0, const int* sizes, int type, void* data, size_t* step, int flags, UMatUsageFlags usageFlags) const
//+
UMatData* allocate(int dims0, const int* sizes, int type, void* data, size_t* step, cv::AccessFlag flags, UMatUsageFlags usageFlags) const
...
//- bool allocate(UMatData* u, int accessFlags, UMatUsageFlags usageFlags) const
//+
bool allocate(UMatData* u, cv::AccessFlag accessFlags, UMatUsageFlags usageFlags) const
放一张运行成功的照片 :)