一、介绍
1、OpenCV (Open Source Computer Vision Library) is released under a BSD license and hence it’s free for both academic and commercial use. It has C++, Python and Java interfaces and supports Windows, Linux, Mac OS, iOS and Android. OpenCV was designed for computational efficiency and with a strong focus on real-time applications. Written in optimized C/C++, the library can take advantage of multi-core processing. Enabled with OpenCL, it can take advantage of the hardware acceleration of the underlying heterogeneous compute platform.
Adopted all around the world, OpenCV has more than 47 thousand people of user community and estimated number of downloads exceeding 14 million. Usage ranges from interactive art, to mines inspection, stitching maps on the web or through advanced robotics.
二、编译问题小结
1、opencv库的编译有时会很简单,有时会很麻烦,博主在编译opencv时遇到过下面问题
(1)在TX2上编译with_CUDA的3.2版本,还需要加contrib
(2)在内存不够的RAM开发板上编译3.2版本
(3)在只有文字界面的,不能连网的RAM板子上使用3.2,只能交叉编译
(4)在win系统上编译,C++&python版本
(5)在Ubuntu16.04的虚拟机上编译3.2+contrib
三、问题分析
1、编译要求不同,编译的方式和对应的配置选项是不一样的。
2、为了能解决编译opencv过程中出现的问题,需要知道的基本知识点:
(1)要知道opencv的依赖库的依赖关系
知道了依赖关系才能知道编译过程中出现的问题是什么。
(2)编译工具
编译工具是编译成功与否的重要部分。
(3)配置选项具体介绍
配置选项,能帮助编译者确定哪些功能模块需要编译,哪些不需要编译,同时能控制整个编译文件的大小,如果默认配置选项的话,编译文件可能会超过10G。
四、介绍
1、opencv库有如下依赖库,依赖关系也如下:
OpenCV
|--------zlib
|--------jpeg
|--------libpng
|--------zlib
|--------tiff
|--------zlib
|--------ffmpeg
|--------x264
|--------xvidcore
2、编译工具
(1)在windows系统下面下载,有图形界面的cmake编译器,便于配置编译选项,从而生成makefile文件,从而进行nake
(2)在linux系统中,可以直接使用没有图形界面的cmake工具,也可以使用camke-gui(有图形界面的),博主建议是使用有图形界面的cmake工具。
3、配置选项
(1)https://docs.opencv.org/3.2.0/d6/d15/tutorial_building_tegra_cuda.html(opencv配置选项官方介绍文档)
五、编译
1、环境:win10、Qt5.8
版本:opencv3.2
链接:点击打开链接
2、环境:ubuntu14.04、cuda8.0
版本:opencv3.0
链接:点击打开链接
3、环境:ubuntu16.04、cuda8.0、jetson TX2
版本:opencv3.0
链接:点击打开链接
4、环境:linux3.10.17、imx6
版本:opencv3.2
链接:点击打开链接
5、环境:ubuntu16.04、firefly rk3399
版本:opencv3.2
链接:点击打开链接
致谢
1、opencv官网
2、OpenCV3.2+Qt5.8.0+Win10环境配置
3、ubuntu14.04+cuda8.0(TX2宿主机)安装opencv3.0
4、TX2学习笔记--jetson TX2如何安装opencv3.0或者是更高版本
5、FireFly-RK3399学习笔记--安装opencv
6、opencv3.2(with ffmpeg) 交叉编译移植到arm板(imx6),成功跑起来
7、opencv3.2的交叉编译过程记录(实用参考文档)
8、opencv配置选项官方介绍文档
9、opencv配置选项