系统:ubuntu20.04
安装的opencv版本:opencv 4.10.0
步骤如下:
1、下载源码源码
Releases - OpenCV,在这个网址选择合适的版本,下载source
2、安装工具
#更新apt可安装包列表
sudo apt update#安装cmake和g++
sudo apt install -y cmake g++#安装项目构建工具,有两个选择,make或ninja, ninja自动支持多线程,make得自己加-j选项,这里先全安装上
sudo apt install make ninja-build
3、将文件解压并进入解压后的opencv目录
$ unzip opencv-4.10.0
$ cd opencv-4.10.0
4、开始编译
在编译OpenCV库之前,需要配置CMakeLists.txt文件。
编辑CMakeLists.txt文件:
将:set(CMAKE_INSTALL_PREFIX /usr/local)
改为:set(CMAKE_INSTALL_PREFIX /usr/local/opencv4.10.0)
(注:红色字体这里可以随意指定你想安装的路径)
以避免与系统中的其他OpenCV版本冲突,也是多版本共存重要的一步。
保存并关闭文件。
运行如下指令:
$ mkdir build
$ cd build
$ cmake .. -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4.10.0 -D BUILD_PKGCONFIG=ON
-D BUILD_PKGCONFIG=ON 这个的作用是生成对应的opencv4.pc文件,后面使用pkg-config --modversion opencv4指令可以显示相应的软件版本。
编译 OpenCV库:
$ make -j$(nproc)# 这里注意要彻底推出conda环境,否则有可能无法正常编译。
编译成功后,安装opencv库:
$ sudo make install
设置环境变量:
$ vim ~/.bashrc
在文件最后添加,如下一行,并保存退出
export PATH=/usr/local/opencv4.10.0:$PATH
通过以下命令使修改生效,对当前用户永久生效 :
$ source ~/.bashrc
5、创建opencv.pc
安装完成后,手动创建opencv.pc
$ cd /usr/local/lib$ cd pkgconfig
#如果没有这个文件夹就创建一个,指令:sudo mkdir pkgconfig$ sudo gedit opencv.pc
然后添加文本并保存退出:
prefix=/usr/local/opencv4.10.0 # 要修改
exec_prefix=${prefix}
includedir=/usr/local/opencv4.10.0/include # 要修改
libdir=/usr/local/opencv4.10.0/lib # 要修改Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.10.0 # 要修改
Libs: -L${exec_prefix}/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir}
在终端执行:
$ pkg-config --modversion opencv