OpenCV的安装经验(Linux)
2017-09-26 09:15
225 查看
OpenCV的安装经验
OpenCV是计算机视觉最常用的库了,本身很大,而很多linux发行版上会自带OpenCV的软件包,这导致了大家在安装时经常会碰到多版本共存的问题。在此我总结了我使用OpenCV的方法套路,使用此方法安装、导入工程可以灵活地选择自己要安装的版本。安装
首先当然是去官网下载源码安装包。地址如下http://opencv.org/releases.html
似乎3.x的版本和2.4版本的接口变化挺大。等有时间了再去仔细研究吧。
本文推荐,安装目录和源码在一个目录下,以避免污染系统的/usr。具体命令如下:
unzip opencv-2.4.13.3.zip cd opencv-2.4.13.3 mkdir build destdir cd build cmake .. make make install DESTDIR =../destdir/
解释
如命令所示,在源码根目录下创建了一个编译项目的build目录,同时创建了一个存放项目位置的
destdir目录。我当前的源码目录如下所示(比较久远有多个自建的目录):
图中共有四个新建的目录dist是最初安装的版本。dist_withgtk是后来编程需要加上gtk编译的版本。而distdir是为了写本文而构建的目录。
注意
make install DESTDIR =../destdir/
此命令的
DESTDIR后的参数定义了需要安装的位置。而项目安装在此目录后,项目脚本会自动创建标准unix的代码与库架构并将项目安装进去:
由此推测安装脚本的默认值应该是
系统根目录。而直接安装,会为以后卸载,更新带来很多麻烦(更新。。。没试过)。所以通常我建议自己定制它。
使用
以上就是项目安装的方法。而安装了以后,该如何使用自己编译好的版本呢?这就要谈到cmake了。通常我们使用OpenCV都是在使用cmake构建的工程下。而一般网上博客的教程都是如下代码:find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) add_executable(exec sources) target_link_libraries(exec ${OpenCV_LIBS} )
其实本文提出的方法区别不大,就是在
find_package前加上
set(OpenCV_DIR "/home/xdeddy/Desktop/deplib/opencv-3.2.0/destdir/usr/local/share/OpenCV")
注意路径中
/home/xdeddy/Desktop/deplib/opencv-3.2.0/destdir就是编译后的文件安装的根目录,就是上文
DESTDIR指定的位置,根据实际情况修改即可。且后面的
/usr/local/share/OpenCV必须加上,这是固定不变的。
总结与讨论
本文推荐的方法很简单,核心就是在安装时指定make install后的
DESTDIR参数,在使用时指定
cmake的
OpenCV_DIR变量。
至于为何指定的是
cmake的
OpenCV_DIR变量,是因为,该变量指定了一个cmake的配置文件存放的地址。
OpenCV算是一个非常非常标准的cmake工程库了,所以它非常完善地采用了cmake的这个特性。大家可以在上文的目录里找到
OpenCVConfig.cmake这个配置文件。这是一个
cmake工程的标准配置文件,指定了本库的头文件、库文件的安装位置,并设置了相关变量。各发行版自带的安装包自带了
OpenCVConfig.cmake这个配置文件。且
OpenCV_DIR变量也默认会指向相应路径,所以我们在
apt-get install后才可以安逸地通过
find_package(OpenCV REQUIRED)去使用自带版本的库。同时用
OpenCV_INCLUDE_DIRS和
OpenCV_LIBS去指定头文件地址,链接的库文件。
后期我会再次总结cmake在大项目中的常用套路。
感觉OpenCV官方提供的cmake脚本应该支持更优雅的方法以实现多版本共存、卸载等机制,如果有哪位读者有所了解欢迎指教!
相关文章推荐
- linux下NS2学习之gnuplot安装经验
- Linux 下编译安装OpenCV
- linux系统下安装多个MySql数据库并做主从配置(个人项目经验)
- OpenCV3源码方式安装教程(树莓派、linux通用)
- linux中安装python科学计算环境-numpy、scipy、matplotlib、OpenCV...
- linux下安装2个mysql经验分享
- CentOS6 - Linux下安装OpenCV
- [置顶] 基于opencv的四轴飞行器寻迹系统(一)——linux下opencv的安装
- Linux下安装OpenCV+Python支持
- Linux下源码安装的经验总结
- Linux下Opencv的安装及配置使用
- linux下源码安装opencv-python
- linux 安装opencv
- Linux下安装opencv cmake 命令
- 向U盘中安装Linux系统的经验(不是制作安装盘)
- linux下编译安装opencv
- Mac OS X/ Linux 下源码安装 opencv
- ubuntu(linux)下安装openCV(ffmpeg导致的编译不通过的解决办法)
- Linux下Opencv的安装及配置使用
- linux下安装2个mysql经验分享