一、下载源文件
https://github.com/opencv/opencv/releases/tag/4.5.0下载opencv并解压缩
https://github.com/opencv/opencv_contrib/releases/tag/4.5.0下载opencv_contrib并解压缩
两个解压缩包应位于同级目录下
二、终端安装必要包
sudo apt update
sudo apt install cmake
sudo apt install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt install pkg-config
三、cmake
- 转到解压缩的同级目录
- 创建build文件夹并进入:
mkdir opencv450_build
cd opencv450_build/
- 更改如下命令中的路径后输入:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_GTK=ON -D OPENCV_GENERATE_PKGCONFIG=YES -D BUILD_TBB=ON -D WITH_TBB=ON -D OPENCV_ENABLE_NONFREE=ON -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.0/modules ./
注:
如果需要安装opencv_DNN_CUDA(利用opencv跑内置深度学习模型,如yolov4等), 则需要首先安装完cuda和cudnn,然后执行:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_GTK=ON -D OPENCV_GENERATE_PKGCONFIG=YES -D OPENCV_DNN_CUDA=ON -D WITH_CUDA=ON -D BUILD_TBB=ON -D WITH_TBB=ON -D OPENCV_ENABLE_NONFREE=ON -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.0/modules ./
如果需要安装更多额外功能,可执行:
sudo apt-get install cmake-qt-gui
sudo cmake-gui
进入gui界面查看选项
- 在上方source选择opencv解压缩包,where to build选择build文件夹
- 不勾选额外选项直接点击configure 分别选择unix和defalt,然后点击finish
- 勾选额外选项,譬如搜索“extra", 填写contrib中modules路径,勾选WITH_GTK等
- 反复点击configure(一般两次)至红色警告消失,点击generate
四、安装opencv
sudo make -j8 //建议多线程编译.单线程超慢
sudo make install
五、配置系统环境
echo '/usr/local/lib' | sudo tee -a /etc/ld.so.conf.d/opencv.conf
sudo ldconfig
printf '# OpenCV\nPKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig\nexport PKG_CONFIG_PATH\n' >> ~/.bashrc
source ~/.bashrc
六、卸载
如需卸载,转到build目录,输入:
sudo make uninstall
七、查看opencv版本
pkg-config --modversion opencv4
如果出现not found,则首先输入命令查找位置
locate opencv4.pc
然后拷贝过去
sudo cp -f /home/elbert/drive_envs/openv4.5.0/opencv450_build/unix-install/opencv4.pc /usr/lib/pkgconfig/
八、Qt调用
- 在Qt中添加库文件和包含目录(需要什么库文件就按如下格式添加该文件)
LIBS += -L/home/elbert/drive_envs/openv4.5.0/opencv450_build/lib -lopencv_highgui
LIBS += -L/home/elbert/drive_envs/openv4.5.0/opencv450_build/lib -lopencv_core
LIBS += -L/home/elbert/drive_envs/openv4.5.0/opencv450_build/lib -lopencv_imgproc
LIBS += -L/home/elbert/drive_envs/openv4.5.0/opencv450_build/lib -lopencv_imgcodecs
LIBS += -L/home/elbert/drive_envs/openv4.5.0/opencv450_build/lib -lopencv_shape
LIBS += -L/home/elbert/drive_envs/openv4.5.0/opencv450_build/lib -lopencv_videoio
INCLUDEPATH += \
/usr/local/include/opencv4