opencv+Linux源码编译安装及引用
(一)下载
opencv下载地址:https://opencv.org/releases/
opencv_contrib下载地址:https://github.com/opencv/opencv_contrib/tags
opencv_contrib是opencv的扩展,主要作用是能够调用GPU进行加速计算,可下载也可不下,且当你GPU性能比较差时反而导致运算速度更慢,两个都要下载源码。
以下以opencv-4.7.0示例。
(二)安装工具及编译
1、依赖库安装
ubuntu等系统通过apt命令安装:
apt install build-essential cmake git pkg-config libgtk-3-dev \
libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \
gfortran openexr libatlas-base-dev python3-dev python3-numpy \
libtbb2 libtbb-dev libdc1394-22-dev libopenexr-dev \
libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
centos、openclouds等系统通过yum命令安装:
yum install cmake gcc gcc-c++ gtk2-devel gtk3-devel gimp-devel gimp-devel-tools gimp-help-browser zlib-devel libtiff-devel libjpeg-devel libpng-devel gstreamer-devel libavc1394-devel libraw1394-devel libdc1394-devel jasper-devel jasper-utils swig python libtool nasm
2、源码安装
解压不多说,解压后将opencv_contrib放入opencv目录中。
cd opencv-4.7.0
mkdir build && cd build
## 构建
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_EXTRA_MODULES_PATH=/usr/local/opencv-4.7.0/opencv_contrib-4.7.0/modules \
-D BUILD_EXAMPLES=ON ..
在构建代码中CMAKE_INSTALL_PREFIX涉及到之后引用opencv的路径,OPENCV_GENERATE_PKGCONFIG影响pkgconfig的创建,建议填写。
注意:在进行编译过程中,可能会遇到构建程序卡在如下进度:
IPPICV: Downloading ippicv_2020_lnx_intel64_20191018_general.tgz from https://ghproxy.com/https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_lnx_intel64_20191018_general.tgz
此时需要找到源代码,修改上述下载路径,在路径前加上https://ghproxy.com/。
- 找到/usr/local/opencv-4.7.0/3rdparty/ippicv,将ippicv.cmake中的下载路径进行修改,如原地址为:
https://ghproxy.com/https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/
修改后为:
https://ghproxy.com/https://ghproxy.com/https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/
- 找到/usr/local/opencv-4.7.0/opencv_contrib-4.7.0/modules/wechat_qrcode,打开CMakeList.txt修改下载路径
- 找到/usr/local/opencv-4.7.0/opencv_contrib-4.7.0/modules/xfeatures2d/cmake,两个cmake都修改
。。。其他的类似,所以说,没GPU加速需求别瞎安装opencv_contrib,找事。
构建完后,开始编译安装
make -j2 && make install
3、环境配置
查看opencv版本信息
pkg-config opencv4 --libs --cflags
如果显示没找到,需要在/etc/profile加入下面配置:
export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH
最后在/etc/profile加入用于调用的环境变量:
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
注意:构建时未配置OPENCV_GENERATE_PKGCONFIG会缺少opencv4.pc文件,导致pkg-config opencv4 --libs --cflags还是不能用
需要手动创建opencv4.pc文件
mkdir /usr/local/lib64/pkgconfig
vim /usr/local/lib64/pkgconfig/opencv4.pc
然后加入以下内容:
# Package Information for pkg-config
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include/opencv4
Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.7.0
Libs: -L${exec_prefix}/lib64 -lopencv_stitching -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_intensity_transform -lopencv_line_descriptor -lopencv_mcc -lopencv_quality -lopencv_rapid -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -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_imgcodecs -lopencv_flann -lopencv_photo -lopencv_imgproc -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir}
(三)引用
1.对于Cmake项目,需要在CmakeList.txt中添加以下配置:
# 查找opencv包
find_package(OpenCV REQUIRED)
# 添加头文件目录
include_directories(${OpenCV_INCLUDE_DIRS})
# 链接opencv库,your_executable_or_library表示可执行文件名
target_link_libraries(your_executable_or_library ${OpenCV_LIBS})
2.对于g++、gcc项目,在编译时加上pkg-config opencv4 --libs --cflags,如下:
g++ xxx.cpp -o xxx xxx.cpp `pkg-config opencv4 --libs --cflags`
3.代码中使用时需要在include中加入如下:
#include<opencv2//opencv.hpp>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!