https://www.ncnynl.com/archives/201903/2900.html
根据上述教程安装,但还是遇到很多问题,记录之。
下载好opencv 和opencv_contrib后,在opencv目录下
mkdir release
cd release/
cmake -D WITH_CUDA=ON -D CUDA_ARCH_BIN="7.2" -D ENABLE_PRECOMPILED_HEADERS=OFF -D CUDA_ARCH_PTX=/usr/local -D WITH_GSTREAMER=ON -D WITH_LIBV4L=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/share -D OPENCV_EXTRA_MODULES_PATH=~/turtlebot_ws/src/tools/opencv-3.2.0/opencv_contrib/modules ..
注意这里路径是否与你自己吻合,cuda路径,cmake路径,和opencv路径。
然后就开始报错了
1.
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CUDA_nppi_LIBRARY (ADVANCED)
按下面解答进行修改
https://stackoverflow.com/questions/46584000/cmake-error-variables-are-set-to-notfound
修改文件注意路径,文件在下载的opencv3.2目录里,下图的第二个文件。
改好后就不会报这个错了
2.
CMake Error at cmake/OpenCVUtils.cmake:1043 (file):
file DOWNLOAD HASH mismatch
for file: [/home/nvidia/turtlebot_ws/src/tools/opencv-3.2.0/opencv_contrib/modules/xfeatures2d/cmake/.download/7cd47228edec52b6d82f46511af325c5/vgg_generated_80.i]
expected hash: [7cd47228edec52b6d82f46511af325c5]
actual hash: [d41d8cd98f00b204e9800998ecf8427e]
status: [7;"Couldn't connect to server"]
cmake报错说下载的版本与期望的版本不一样,所以需要手动下载匹配版本。
进入报错的文件目录,其中/.download是隐藏目录,找的时候按CTRL+H,或者右上角选项打开隐藏目录。
进入目录后,先删掉vgg_generated_80.i,然后在目录的空白区域右键 -- 打开命令行,输入下面语句,下载需要的版本。
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_80.i > 7cd47228edec52b6d82f46511af325c5-vgg_generated_80.i
由于墙,多次尝试无法下载。但晚上再次尝试,突然成功下载,如下图
下载后的文件名有前缀7cd4...,重命名只保留vgg_generated_80.i。
80_i 成功替换后,再次cmake报错 120_i 也mismatch,所以同理下载
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_120.i > 151805e03568c9f490a5e3a872777b75-vgg_generated_120.i
如果还提示缺少其他的,参考 https://github.com/opencv/opencv_contrib/issues/1301,往下拉,有个回答有所有这些项目的链接。
然后就终于成功了。。。