赞
踩
ubuntu20.04 安装同时安装opencv3.4.1及opencv4.5
————便于不同应用的程序对于opencv的调用
找寻之前安装的opebcv文件夹,通常来说,默认安装的opencv的.so和.h文件在/usr/local/lib 和/usr/local/include 文件中
1.找到opencv的安装文件:
/home/l/opencv-4.5
2.进入该文件夹下的build文件夹中执行:
sudo make uninstall
3.然后将build文件夹删除:
cd ..
sudo rm -r build
4.清理其他的相关项:
sudo rm -r /usr/local/include/opencv4 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv4 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*
这里会报一些找不到文件路径的错误,没有关系,多执行几次,然后找到上面的指定文件看看有没有
下载opencv3.4的文件: https://github.com/opencv/opencv/tree/3.4
或者
opencv版本在这[Releases · opencv/opencv · GitHub],contrib版本在这[GitHub - opencv/opencv_contrib at 3.4.3]
下载好对应的版本opencv,解压到当前目录: /home/l/opencv-3.4
1.在该文件夹下打开终端:
sudo apt-get update
sudo apt-get upgrade
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
容易出现问题:
注意:在这里很容易就出现某个依赖项安装有问题,比如依赖包libjasper-dev安安装就出现了问题
(base) l@l:~/opencv-3.4$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
注意,选中 'python-dev-is-python2' 而非 'python-dev'
E: 无法定位软件包 libjasper-dev
解决方案:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
在重复1.中的代码
make 安装
2.在该文件夹下打开终端:
mkdir build
cd build/
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv-3.4 ..
创建成功:
省略 。。。。。
-- Install to: /usr/local/opencv-3.4
-- -----------------------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: /home/l/opencv-3.4/build
出现上面的结果,代表成功一小步;
sudo make -j8
编译成功:
省略 。。。。。
[ 99%] Building CXX object modules/videostab/CMakeFiles/opencv_test_videostab.dir/test/test_main.cpp.o
[ 99%] Building CXX object modules/videostab/CMakeFiles/opencv_test_videostab.dir/test/test_motion_estimation.cpp.o
Scanning dependencies of target opencv_python2
[ 99%] Building CXX object modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.o
[ 99%] Linking CXX executable ../../bin/opencv_test_videostab
[ 99%] Built target opencv_test_videostab
[ 99%] Building CXX object modules/stitching/CMakeFiles/opencv_perf_stitching.dir/perf/perf_stich.cpp.o
[ 99%] Linking CXX executable ../../bin/opencv_perf_stitching
[ 99%] Built target opencv_perf_stitching
[ 99%] Linking CXX executable ../../bin/opencv_test_core
[ 99%] Built target opencv_test_core
[100%] Linking CXX shared module ../../lib/cv2.so
[100%] Built target opencv_python2
出现上面的结果,代表又成功一小步;
sudo make install
安装成功:
省略 。。。。。
-- Installing: /usr/local/opencv-3.4/bin/opencv_interactive-calibration
-- Set runtime path of "/usr/local/opencv-3.4/bin/opencv_interactive-calibration" to "/usr/local/opencv-3.4/lib"
-- Installing: /usr/local/opencv-3.4/bin/opencv_version
-- Set runtime path of "/usr/local/opencv-3.4/bin/opencv_version" to "/usr/local/opencv-3.4/lib"
出现上面的结果,代表成功。
用gedit打开/etc/ld.so.conf
其中/usr/loacal/opencv-3.4/lib是opencv安装路径也就是makefile中指定的安装路径
sudo gedit /etc/ld.so.conf.d/opencv.conf
输入
/usr/loacal/opencv-3.4/lib
保存后终端输入
sudo ldconfig
更新共享链接库
然后配置bash,修改bash.bashrc文件
sudo gedit /etc/bash.bashrc
在文末加上
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv-3.4/lib/pkgconfig
export PKG_CONFIG_PATH
保存后退出,终端输入以下命令使配置生效
source /etc/bash.bashrc
更新一下
sudo updatedb
可能出现的错误
解决办法:
终端输入
sudo apt install mlocate
或者
sudo apt install locate
然后再输入sudo updatedb就没问题了
终端输入
pkg-config --modversion opencv
同上!!!!
下载opencv4.5的文件: https://github.com/opencv/opencv/tree/
或者
opencv版本在这[Releases · opencv/opencv · GitHub]
下载好对应的版本opencv,解压到当前目录: /home/l/opencv-4.5
1.在该文件夹下打开终端:
sudo apt-get update
sudo apt-get upgrade
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
make 安装
2.在该文件夹下打开终端:
mkdir build
cd build/
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv-4.5 ..
创建成功:
省略 。。。。。
-- Install to: /usr/local/opencv-4.5
-- -----------------------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: /home/l/opencv-4.5/build
出现上面的结果,代表成功一小步;
sudo make -j8
编译成功:
省略 。。。。。
[ 99%] Building CXX object modules/videostab/CMakeFiles/opencv_test_videostab.dir/test/test_main.cpp.o
[ 99%] Building CXX object modules/videostab/CMakeFiles/opencv_test_videostab.dir/test/test_motion_estimation.cpp.o
Scanning dependencies of target opencv_python2
[ 99%] Building CXX object modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.o
[ 99%] Linking CXX executable ../../bin/opencv_test_videostab
[ 99%] Built target opencv_test_videostab
[ 99%] Building CXX object modules/stitching/CMakeFiles/opencv_perf_stitching.dir/perf/perf_stich.cpp.o
[ 99%] Linking CXX executable ../../bin/opencv_perf_stitching
[ 99%] Built target opencv_perf_stitching
[ 99%] Linking CXX executable ../../bin/opencv_test_core
[ 99%] Built target opencv_test_core
[100%] Linking CXX shared module ../../lib/cv2.so
[100%] Built target opencv_python2
出现上面的结果,代表又成功一小步;
sudo make install
安装成功:
省略 。。。。。
-- Installing: /usr/local/opencv-4.5/bin/opencv_interactive-calibration
-- Set runtime path of "/usr/local/opencv-4.5/bin/opencv_interactive-calibration" to "/usr/local/opencv-4.5/lib"
-- Installing: /usr/local/opencv-4.5/bin/opencv_version
-- Set runtime path of "/usr/local/opencv-4.5/bin/opencv_version" to "/usr/local/opencv-4.5/lib"
出现上面的结果,代表成功。
用gedit打开/etc/ld.so.conf
其中/usr/loacal/opencv-4.5/lib是opencv安装路径也就是makefile中指定的安装路径
sudo gedit /etc/ld.so.conf.d/opencv.conf
输入
/usr/loacal/opencv-4.5/lib
保存后终端输入
sudo ldconfig
更新共享链接库
然后配置bash,修改bash.bashrc文件
sudo gedit /etc/bash.bashrc
在文末加上
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv-4.5/lib/pkgconfig
export PKG_CONFIG_PATH
保存后退出,终端输入以下命令使配置生效
source /etc/bash.bashrc
更新一下
sudo updatedb
终端输入
pkg-config --modversion opencv
终端显示:
4.5.0
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found
1. 在/usr/local/opencv-4.5/lib/pkgconfig
中没有opencv,pc 这个文件,也就是最后不会显示4.5.0的版本信息,为此我们需要进行一定的修改,使的我们可以随意使用这两个版本的opencv
那就是缺失了opencv.pc这个配置信息文件,故解决方法就是添加这个文件然后将其导入到环境变量中,具体操作如下:
cd /usr/local/opencv-4.5/lib # 进入该目录下
sudo mkdir pkgconfig # 创建文件夹
cd pkgconfig # 进入文件夹
sudo touch opencv.pc # 创建文件
sudo chmod 777 opencv.pc # 修改权限
打开opencv.pc 文件,里面复制粘贴以下内容:
# Package Information for pkg-config
prefix=/usr/local/opencv-4.5
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir_old=${prefix}/include/opencv
includedir_new=${prefix}/include
Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.5.0
Libs: -L${exec_prefix}/lib -lopencv_dnn -lopencv_highgui -lopencv_ml -lopencv_objdetect -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_videoio -lopencv_imgcodecs -lopencv_features2d -lopencv_video -lopencv_photo -lopencv_imgproc -lopencv_flann -lopencv_viz -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir_old} -I${includedir_new}
okok,此时,我们发现运行该命令可以输出版本信息:
终端输入
pkg-config --modversion opencv
终端显示:
4.5.0
看接下来的关键操作:
在当前文件夹 /usr/local
下打开终端
输入以下命令:
sudo update-alternatives --install /usr/local/opencv opencv /usr/local/opencv-3.4/ 34
sudo update-alternatives --install /usr/local/opencv opencv /usr/local/opencv-4.5/ 45
此时,会出现这样的三个文件夹,但是通过命令,可以自由切换opencv的版本:
sudo update-alternatives --config opencv
输出结果如下:
(base) l@l:~/U20_3.0_lidarCameraCalibrate_online$ sudo update-alternatives --config opencv
有 2 个候选项可用于替换 opencv (提供 /usr/local/opencv)。
选择 路径 优先级 状态
------------------------------------------------------------
0 /usr/local/opencv-4.5/ 45 自动模式
* 1 /usr/local/opencv-3.4/ 34 手动模式
2 /usr/local/opencv-4.5/ 45 手动模式
要维持当前值[*]请按<回车键>,或者键入选择的编号:
用gedit打开/etc/ld.so.conf
其中/usr/loacal/opencv/lib是opencv安装路径也就是makefile中指定的安装路径
sudo gedit /etc/ld.so.conf.d/opencv.conf
输入
/usr/loacal/opencv/lib
保存后终端输入
sudo ldconfig
更新共享链接库
然后配置bash,修改bash.bashrc文件
sudo gedit /etc/bash.bashrc
删除之前配置的4行内容:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv-3.4/lib/pkgconfig
export PKG_CONFIG_PATH
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv-4.5/lib/pkgconfig
export PKG_CONFIG_PATH
在文末加上
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv/lib/pkgconfig
export PKG_CONFIG_PATH
保存后退出,终端输入以下命令使配置生效
source /etc/bash.bashrc
更新一下
sudo updatedb
终端输入
pkg-config --modversion opencv
结果如下:
l@l:~$ pkg-config --modversion opencv 4.5.0 l@l:~$ sudo update-alternatives --config opencv 有 2 个候选项可用于替换 opencv (提供 /usr/local/opencv)。 选择 路径 优先级 状态 ------------------------------------------------------------ * 0 /usr/local/opencv-4.5/ 45 自动模式 1 /usr/local/opencv-3.4/ 34 手动模式 2 /usr/local/opencv-4.5/ 45 手动模式 要维持当前值[*]请按<回车键>,或者键入选择的编号:1 update-alternatives: 使用 /usr/local/opencv-3.4/ 来在手动模式中提供 /usr/local/opencv (opencv) l@l:~$ pkg-config --modversion opencv 3.4.20 l@l:~$ sudo update-alternatives --config opencv 有 2 个候选项可用于替换 opencv (提供 /usr/local/opencv)。 选择 路径 优先级 状态 ------------------------------------------------------------ 0 /usr/local/opencv-4.5/ 45 自动模式 * 1 /usr/local/opencv-3.4/ 34 手动模式 2 /usr/local/opencv-4.5/ 45 手动模式 要维持当前值[*]请按<回车键>,或者键入选择的编号:0 update-alternatives: 使用 /usr/local/opencv-4.5/ 来在自动模式中提供 /usr/local/opencv (opencv) s@s:~$ pkg-config --modversion opencv 4.5.0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。