openCV 卸载
openCV 安装后的源码尽可能保留,因为可以直接从build文件夹下卸载已经安装的openCV.
参考链接:视觉学习笔记10——opencv的卸载、安装与多版本管理
如果已经安装完openCV,后续想重新装,需要先卸载掉安装的openCV.
在ubuntu终端命令行输入以下命令进入安装opencv的build目录并进行卸载操作。
cd build
sudo make uninstall
cd ..
sudo rm -r build
第一行代码为进到opencv下的build文件夹,如我的文件夹路径是~/Downloads/opencv-4.5.4/build
则需要将第一行更改为自己的opencv下的build路径。
最后在输入以下命令清理/usr
(此处应为自己的文件夹)中所有opencv相关项即可。(此步骤可不需要)
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*
像我先前的安装路径为/usr/local/opencv4.5.4
, 该行指令可直接变为
sudo rm -r /usr/local/opencv4.5.4
# openCV安装
参考链接:ubuntu20.04下多版本opencv共存和切换
由于打算运行PL-SLAM,因此安装openCV3.4.10和openCV4.5.4。
下载和安装依赖包
1、首先更新 apt-get,在安装前最好先更新一下系统,不然有可能会安装失败。在终端输入:
sudo apt-get update
sudo apt-get upgrade
2、接着安装官方给的opencv依赖包,在终端输入:
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
- 下载openCV3.4.10和opencv_contrib3.4.10源码压缩包,注意两者版本号需要相同。
- 下载后解压,将opencv_contrib3.4.10直接移入到opencv3.4.10文件夹下。
输入下述指令:
cd ~/Downloads/opencv-3.4.10
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.4.10 -D OPENCV_EXTRA_MODULES_PATH=/home/xiujie/Downloads/opencv-3.4.10/opencv_contrib-3.4.10/modules/ -D OPENCV_GENERATE_PKGCONFIG=YES -D OPENCV_ENABLE_NONFREE=True -D BUILD_opencv_cudacodec=OFF ..
cd后跟的文件位置需要改为自己存opencv安装源码的真实位置。
关于cmake 后各项参数的意义在这个链接中讲的十分清楚亲测:Ubuntu 20.04上安装OpenCV 5.x with CUDA。
特别需要注意的是CMAKE_INSTALL_PREFIX=/usr/local/opencv3.4.10
表示的是后续openCV的安装位置。
到大这步可能会出现下载失败的问题,有条件的需要用到外网或者手动下载,手动下载的话参考链接:[
ubuntu20.04下多版本opencv共存和切换
(https://blog.csdn.net/xiao_qs/article/details/126650329)
- 编译安装。
查一下自己电脑最多支持多少线程:
nproc
我的电脑输出是8,所以逐行执行
make -j4
sudo make install
环境配置
创建文件并打开:
sudo vim /etc/ld.so.conf.d/opencv.conf
在打开的文件中添加如下内容:
/usr/local/opencv3.4.10/lib
该行代码是添加opencv动态库路径,需要根据自己的安装路径来,例如我的安装路径是/usr/local/opencv3.4.10
则应该设置为/usr/local/opencv3.4.10 /lib
, 如下图所示,我的是因为同时装了opencv4.5.4, 如果要用opencv3把opencv4的那一行注释掉就可以。
保存之后打开新的终端,输入指令:
sudo ldconfig
使其保存生效,再在终端输入:
sudo vim /etc/bash.bashrc
打开文件后在末尾输入:
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/usr/local/opencv3.4.10/lib/pkgconfig
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/opencv3.4.10/lib
注意这两行指令的文件夹位置:
其中/usr/local/opencv3.4.10
为安装位置。
/usr/local/opencv3.4.10/lib/pkgconfig
,这个在cmake编译的时候,必须设置OPENCV_GENERATE_PKGCONFIG=YES
,否则就需要自己创建pkgconfig文件,很多教程有,此处不再赘述。下图为opencv4的,下面的文件名为opencv4.pc。opencv3的同理,文件名为opencv.pc。
保存退出, 终端输入:
source /etc/bash.bashrc
测试
输入代码
pkg-config --modversion opencv
安装opencv4步骤同上,重点注意一下安装路径,将部分代码附上:
cd ~/Downloads/opencv-3.4.10
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4.5.4 -D OPENCV_EXTRA_MODULES_PATH=/home/xiujie/Downloads/opencv-4.5.4/opencv_contrib-4.5.4/modules/ -D OPENCV_GENERATE_PKGCONFIG=YES -D OPENCV_ENABLE_NONFREE=True -D BUILD_opencv_cudacodec=OFF ..
# 线程数最好大点,加快速度,查看cpu线程:
grep 'processor' /proc/cpuinfo | sort -u | wc -l
# 查到线程为8,因此为j8
make -j8
sudo make install
sudo vim /etc/ld.so.conf.d/opencv.conf
/usr/local/opencv4.5.4/lib
sudo ldconfig
sudo vim /etc/bash.bashrc
#e xport PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/usr/local/opencv4.5.4/lib/pkgconfig
# export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/opencv4.5.4/lib
source /etc/bash.bashrc
查看版本号pkg-config --modversion opencv4
多版本切换参见:视觉学习笔记10——opencv的卸载、安装与多版本管理