1.首先要删除原来的opencv
sudo make uninstall
cd ..
sudo rm -r build
sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*
如果你没找到你原来安装的opencv,或者原来安装后的build文件,无法uninstall。那么只要删除你能找到的opencv就好
sudo find / -iname "*opencv*"
觉得不需要的就删掉
2.下载opencv源码
https://github.com/opencv/opencv/releases
https://github.com/opencv/opencv_contrib/releases
选择一样版本的opencv和contrib
3.安装
把下载好的contrib解压放在opencv目录下
参考:
https://www.jianshu.com/p/b1df7df72b6d
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RELEASE \-DCMAKE_INSTALL_PREFIX=/usr/local \
-DINSTALL_PYTHON_EXAMPLES=ON \ -DINSTALL_C_EXAMPLES=OFF \
-DOPENCV_EXTRA_MODULES_PATH=/home/sick/Downloads/opencv-3.4.0/opencv_contrib-3.4.0/modules\ -DBUILD_opencv_python3=ON \-DBUILD_opencv_python2=OFF \
-DPYTHON_EXCUTABLE=/home/sick/anaconda3/bin/python3 \
-DPYTHON3_INCLUDE_DIR=/home/sick/anaconda3/include/python3.6m \
-DPYTHON3_LIBRARY=/home/sick/anaconda3/lib/libpython3.6m.so.1.0 \
-DPYTHON_NUMPY_PATH=/home/sick/anaconda3/lib/python3.6/site-packages \
-DWITH_CUDA=ON -DWITH_CUBLAS=ON -DDCUDA_NVCC_FLAGS="-D_FORCE_INLINES"
-DCUDA_ARCH_BIN="7.0" -DCUDA_ARCH_PTX="" -DCUDA_FAST_MATH=ON -DWITH_TBB=ON \
-DWITH_V4L=ON -DWITH_GTK=ON -DWITH_OPENGL=ON -DBUILD_EXAMPLES=OFF -DWITH_OPENMP=ON -DBUILD_TESTS=OFF ..
make -j12
sudo make install
其中CUDA_ARCH_BIN就是你显卡的计算能力,去https://developer.nvidia.com/cuda-gpus#compute,自己查询
4.测试
cd Downloads/opencv-3.4.0/samples/cpp/example_cmake/
sudo mkdir build
cd build
sudo cmake ..
sudo make
./opencv_example
5.安装过程和测试过程遇到的错误
1.fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory
参考:https://www.cnblogs.com/thmx/p/8565530.html
解决办法:
1. 查找该文件以及路径:
$: find . -name "cuda.hpp"
找到文件发现存在: ./opencv-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp
2. 找到上述文件的全路径替换出错文件中引用cuda.hpp的位置代码即可。
2.对于boostdesc_bgm.i的问题
解决办法:
下载:https://download.csdn.net/download/u011736771/12152001
直接改了名(把奇怪的前缀去掉)放到~/opencv_contrib/modules/xfeatures2d/src/下了,boost和vgg放进去,然后make,
3./usr/bin/ld: warning: libicui18n.so.58, needed by anaconda3/lib/libQt5Core.so.5
解决办法:
或者类似的问题,都是路径设置问题,参考:https://blog.csdn.net/heiheiya/article/details/82625460
4.测试的时候问题:
undefined reference to `inflateValidate@ZLIB_1.2.9'
解决办法:
https://www.cnblogs.com/wayne-tao/p/12434421.html