1 准备条件
1.1 安装必备的软件包
sudo apt-get update
sudo apt install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-dev
如果想要使用sfm包,需要安装以下:
sudo apt install libeigen3-dev libgflags-dev libgoogle-glog-dev libsuitesparse-dev
1.2、cuda及cudnn安装
如果不需要GPU加速的话,不需要安装,直接跳过。
安装cuda:
cuda历史版本网址:https://developer.nvidia.com/cuda-toolkit-archive
下载cuda
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
安装:
sudo sh cuda_11.8.0_520.61.05_linux.run
只选择cuda的安装,不安装驱动和内核
cudnn 安装
cudnn下载网址:https://developer.nvidia.com/cudnn 需要注册nvidia账号
我选择的是 cudnn v8.9.0 for cuda 11.x ,下载的是tar包
解压tar包 tar -xvf cudnn-linux-x86_64-8.9.0.131_cuda11-archive.tar.xz
复制文件到cuda安装路径下
cp -rf /home/cudnn-linux-x86_64-8.9.0.131_cuda11-archive/lib/* /usr/local/cuda/lib64
cp -rf /home/cudnn-linux-x86_64-8.9.0.131_cuda11-archive/include/* /usr/local/cuda/include
2、源码下载
git clone https://github.com/opencv/opencv
git clone https://github.com/opencv/opencv_contrib
切换版本分支
切换 opencv 分支:
git checkout 4.8.1
切换opencv_contrib 分支
git checkout 4.8.1
3、编译
cd /home/opencv
mkdir build
cd build
执行:
cmake过程中会从github上下载文件,建议采用代理或者直接将.cache文件夹拷贝到自己的里面去
如果不需要编译cuda
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/build -D INSTALL_PYTHON_EXAMPLES=OFF -D INSTALL_C_EXAMPLES=ON -D OPENCV_ENABLE_NONFREE=ON -D WITH_TBB=ON-D OPENCV_EXTRA_MODULES_PATH=/home/opencv_contrib/modules -D BUILD_opencv_python3=OFF -D BUILD_opencv_python2=OFF -D BUILD_EXAMPLES=ON -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_PC_FILE_NAME=opencv4.pc ..
需要cuda编译
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/build -D INSTALL_PYTHON_EXAMPLES=OFF -D INSTALL_C_EXAMPLES=ON -D OPENCV_ENABLE_NONFREE=ON -D WITH_TBB=ON -D WITH_CUDA=ON -D OPENCV_DNN_CUDA=ON -D WITH_CUDNN=ON -D CUDA_FAST_MATH=1 -D CUDA_ARCH_BIN=8.6 -D WITH_CUBLAS=1 -D OPENCV_EXTRA_MODULES_PATH=/home/opencv_contrib/modules -D BUILD_opencv_python3=OFF -D BUILD_opencv_python2=OFF -D BUILD_EXAMPLES=ON -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_PC_FILE_NAME=opencv4.pc ..
CUDA_ARCH_BIN的数值根据显卡的型号从下面网站获取:
https://developer.nvidia.com/cuda-gpus
CMAKE_INSTALL_PREFIX opencv的安装路径
OPENCV_EXTRA_MODULES_PATH opencv_contrib的modules目录路径
sudo make -j14
其中14表示线程数
4、安装
1、sudo make install
2、cp /home/build/lib/pkgconfig/opencv4.pc /usr/lib/pkgconfig
将opencv4.pc文件移动到/usr/lib/pkgconfig/路径下
至此:opencv已经安装到了/home/build文件夹下
如果opencv的安装包想要放到其他路径下,需要修改opencv4.pc中的prefix路径,如:
想要把opencv移动到/usr/local/opencv下,需要将opencv4.pc中的prefix=/home/build改为prefix=/usr/local/opencv
5、判断
pkg-config --modversion opencv4
如果输出4.8.1 则为正确