(一)Linux下C++ OpenCV开发环境搭建
1.下载源码
opencv官网
2.编译
- 路径切入源码目录
- 执行命令:
cmake -DOPENCV_GENERATE_PKGCONFIG=YES - DCMAKE_INSTALL_PREFIX=/home/lx/opencv/install .. make make install
注意:
- 1).
-DOPENCV_GENERATE_PKGCONFIG=YES
选项是编译生成opencv4.pc
这个文件用于pkg-config
程序管理已安装库的头文件和库文件,编译结束opencv4.pc
文件一般在opencv/install/lib/pkgconfig/opencv4.pc
目录; - 2).
DCMAKE_INSTALL_PREFIX
指定make install
时的安装目录。
- 1).
3.使用pkg-config
- 1.安装
sudo apt install pkg-config
- 2.设置环境变量
PKG_CONFIG_PATH
export
PKG_CONFIG_PATH=/home/lx/sw/opencv/install/lib/pkgconfig:$PKG_CONFIG_PATH
- 3.查看头文件和库文件目录
# *.so directories
pkg-config --libs opencv4
# *.h directories
pkg-config --cflags opencv4
- 4.查看
OpenCV
版本
pkg-config --modversion opencv4
4.使用CMAKE
和GCC
编译OpenCV
程序
- 1).
CMakeList.txt
文件cmake_minimum_required(VERSION 2.8) project( DisplayImage ) find_package( OpenCV REQUIRED ) include_directories( ${OpenCV_INCLUDE_DIRS} )
find_package
有Module
和Config
两种模式,Module
模式,cmake需要在cmake安装目录下的share/cmake-<version>/Modules
目录和CMAKE_MODULE_PATH
目录查找Find<LibraryName>.cmake
,这个文件负责找到库所在的路径。若Module
模式搜索失败,会启用Config
模式,通过<LibraryName>Config.cmake
或<lower-case-package-name>-config.cmake
这两个文件来引入我们需要的库。对于原生支持Cmake
编译和安装的库通常会安装Config
模式的配置文件到对应目录,这个配置文件直接配置了头文件库文件的路径以及各种cmake
变量供find_package
使用。对于OpenCV
在opencv/build
目录下,可以看到OpenCVConfig.cmake
文件。 - 2).若
find_package
找不到安装的opencv
可通过set(OpenCV_DIR /path)
来指定。set(OpenCV_DIR /home/lx/rob/opencv-3.4.10/build) find_package( OpenCV 3 REQUIRED ) INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
5.使OpenCV支持Nvidia GPU
在Nvidia网站查找显卡算力,设置CUDA_ARCH_BIN
的值
https://developer.nvidia.com/cuda-gpus
如果CUDA_ARCH_BIN
参数设置有误,OpenCV可以编译通过,但使用DNN
推理时会报错
File "ssd_object_detection.py", line 74, in detections = net.forward()
cv2.error: OpenCV(4.2.0) /home/a_rosebrock/opencv/modules/dnn/src/cuda/execution.hpp:52: error: (-217:Gpu API call) invalid device function in function 'make_policy'
cmake -D CMAKE_BUILD_TYPE=RELEASE \-D CMAKE_INSTALL_PREFIX=/usr/local \-D INSTALL_PYTHON_EXAMPLES=ON \-D INSTALL_C_EXAMPLES=OFF \-D OPENCV_ENABLE_NONFREE=ON \-D WITH_CUDA=ON \-D WITH_CUDNN=ON \-D OPENCV_DNN_CUDA=ON \-D ENABLE_FAST_MATH=1 \-D CUDA_FAST_MATH=1 \-D CUDA_ARCH_BIN=7.0 \-D WITH_CUBLAS=1 \-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \-D HAVE_opencv_python3=ON \-D PYTHON_EXECUTABLE=~/.virtualenvs/opencv_cuda/bin/python \-D BUILD_TIFF=ON \-D BUILD_EXAMPLES=ON ..
常见问题
- 0. 编译C++时报错
/usr/lib/x86_64-linux-gnu/libvtkIOImage-6.2.so.6.2: undefined reference to `_TIFFmalloc@LIBTIFF_4.0'
OpenCV
需要使用libtiff4
,ubuntu
上已经舍弃,取而代之的是libtiff5-dev
,所以解决这个问题的方式有两个:- 0)
sudo apt-get install libtiff5-dev
- 1)
cmake
指令后跟-DBUILD_TIFF=ON
以在编译OpenCV
时同时编译libtiff4
在ubuntu20.04
编译OpenCV 4.4.0
时验证可行。
- 0)
- 1. error while loading shared libraries
libopencv_highgui.so.4.4: cannot open shared object file: No such file or directory解决方法:
set LD_LIBRARY_ATH as pkg-config --libs opencv4 export LD_LIBRARY_ATH="/home/lx/sw/opencv/install/lib:$LD_LIBRARY_ATH" sudo ldconfig
参考:
1.https://zhuanlan.zhihu.com/p/97369704
2.https://docs.opencv.org/4.5.4/d7/d9f/tutorial_linux_install.html
(一)Linux下C++ OpenCV开发环境搭建相关推荐
- linux 下51单片机开发环境搭建
linux 下51单片机开发环境搭建(arch linux) 编译sdcc 软件: sdcc 命令:sdcc file.c 得到一堆文件需要( .inx) 命令: packihx file.inx & ...
- 阿里云服务器搭建python web环境_《Python入门》Linux 下 Python Web开发环境搭建笔记-阿里云开发者社区...
之前写过 Windows 7下Python Web开发环境搭建笔记,今天写一下在Linux系统下搭建Python Web的开发测试环境. 我使用的系统是:ubuntu 14.04 server,根据个 ...
- Python入门 Linux 下 Python Web开发环境搭建笔记
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 之前写过 ...
- 《Python入门》Linux 下 Python Web开发环境搭建笔记
之前写过 Windows 7下Python Web开发环境搭建笔记,今天写一下在Linux系统下搭建Python Web的开发测试环境. 我使用的系统是:ubuntu 14.04 server,Cen ...
- linux skype 接口,ubuntu /linux下skype api开发环境搭建
1.安装Skype: 下载skype for linux,地址:http://www.skype.com/download/skype/linux/choose/ 可以下载一个ubuntu 8.10 ...
- Linux 下 QT 安卓开发环境搭建
1.采用QT5.14.2,主要是安装1.jdk 2.SDK 3.NDK 三个工具包,版本要匹配上: 备注:配置SDK需要注意: 解压SDK,进入到tools目录下,运行android可执行文件,会打开 ...
- GCC编译器简明教程(Linux下C语言开发环境的搭建)
GCC编译器简明教程(Linux下C语言开发环境的搭建) 市面上常见的Linux都是发行版本,典型的Linux发行版包含了Linux内核.桌面环境(例如GNOME.KDE.Unity等)和各种常用的必 ...
- Zynq7000开发系列-5(OpenCV开发环境搭建:Ubuntu、Zynq)
操作系统:Ubuntu14.04.5 LTS 64bit OpenCV:OpenCV 3.1.0.opencv_contrib gcc:gcc version 4.8.4 (Ubuntu 4.8.4- ...
- 【Linux Mint 深度学习开发环境搭建】开发软件安装
系列文章目录 第一章 Linux mint 深度学习开发环境搭建之Nvidia显卡相关软件安装 第二章 Linux mint 深度学习开发环境搭建之开发软件安装 第三章 Linux mint 深度学习 ...
最新文章
- 分布式定时任务调度系统技术选型
- 美团某程序员哀叹:能力很强,却因为不会“向上管理”而惨遭被裁!怎么办?...
- 顶象深度画像亮相GMIC,用AI提升金融反欺诈
- 笔记-项目质量管理-复习要点
- 【Python】Matplotlib太臃肿,试试Seaborn
- android和windows技术,《技术》android运行windows的优化与试调整
- 基于单片机超声波测距系统的设计_一种基于UWB技术实现的测距防撞系统
- 易语言word模板复制粘贴_请给你的Word“打底妆”(让Word跑快些系列)
- 简单工厂模式初步尝试
- Java基础,无许复杂语句,倒序输出整数,int i = 123;输出321
- PowerBuilder9 爬取酷狗网页版音乐
- 最齐全的宋体字体素材,速来收藏
- matlab maps 指北针和比例尺,R 地图绘制-比例尺与指北针
- 第三方登陆--狸菇凉_
- 201871010132——张潇潇《面向对象程序设计JAVA》第二周学习总结
- PS油画特效插件AKVIS Artwork for mac
- libsvm的使用svm-scale和svm-train与svm-predict
- 大二第二次月赛--买水果
- “做产品的”,如何自我调节:一封家书,给同学们参考
- Oracle笔记之期末总复习
热门文章
- 人群与网络:搜索引擎广告位的定价
- bzoj 2152: 聪聪可可(树的点分治)
- qscoj:喵哈哈村的卢西奥
- SpringBoot--自动装配之Import注解以及源码分析
- opencv 凸包讲解和绘制
- python利用pygame框架实现类似大鱼吃小鱼游戏 (松鼠吃松鼠) code from making games with python and pygame
- samba配置过程(附网络凭据的解决方法)
- MySQL(一)面试集合
- Asp.Net 学习资源列表 [转]
- 使用ConnectivityManager 判断网络是否连接