我之前安装opencv4.2.0的时候与系统自带的4.5.4都编译在了同一个目录下,即/usr/local,后续会导致很多问题。这里选择先进行卸载:(如果之前没装过别的版本的opencv可以跳过这一步骤)
Ubuntu 装卸Opencv_ubuntu卸载opencv_小枫小疯的博客-CSDN博客
参考这篇博客进行环境配置。首先对系统进行更新。
ROS Ubuntu20.04多版本opencv运行及bug解决_error: ‘cv_font_hershey_simplex’ was not declared _arrow_zjj的博客-CSDN博客
ubuntu20.04下多版本opencv共存和切换_opencv多版本共存_xiao_qs的博客-CSDN博客
sudo apt-get update
sudo apt-get upgrade
安装OpenCV4.2.0以及对应的贡献包opencv_contrib4.2.0,需要先做一些环境配置。
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
在执行最后一行的命令的时候,出现了无法定位软件包的问题。
解决措施如下:
sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe"
sudo apt update
sudo apt install libjasper1 libjasper-dev
参考之前的博客,在对应的网址下载OpenCV4.2.0这里需要注意,需要在github上更改标签。
网址如下:
opencv4.2.0的下载地址和opencv4.2.0_contribute的下载地址可以从以下链接中找到:
我没有安装opencv4.2.0_contribute,目前看来似乎不影响。
ubuntu20.0.4安装opencv4.2.0和opencv_contrib-4.2.0并支持CUDA,Geforce RTX 3060显卡,算力8.6_nvcc warning : the 'compute_35', 'compute_37', 'co_楚歌again的博客-CSDN博客
参考:多版本opencv共存 删除原系统opencv,安装opencv4.4.0 /3.4.10 / 2.4.13.5_opencv多版本共存_Dong_zs的博客-CSDN博客
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv420 -D OPENCV_GENERATE_PKGCONFIG=ON ..
make -j6
sudo make install
注意这里cmake的时候要注意这一段命令:-DCMAKE_INSTALL_PREFIX=/usr/local/opencv420,这里是cmake的存放路径,不可以放在/usr/local下,会与系统自带的opencv路径重合。因此需要指定一个新的路径。
配置OpenCV动态库环境——程序执行时加载动态库*.so的路径,之后配置一些OpenCV的编译环境首先将OpenCV的库添加到路径,从而可以让系统找到:
sudo gedit /etc/ld.so.conf.d/opencv.conf
在其打开的文件中添加:
/usr/local/opencv420/lib
执行如下命令使得刚才的配置路径生效:
更新pkg-config:
sudo ldconfig
配置bash:
sudo gedit /etc/bash.bashrc
在最后面添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv420/lib/pkgconfig
export PKG_CONFIG_PATH
保存之后,将文件夹关掉,再执行以下命令使其立马生效:
source /etc/bash.bashrc
更新
sudo updatedb
开启新终端,查看opencv版本号: