Skip to content

Latest commit

 

History

History
92 lines (71 loc) · 5.1 KB

中文说明.md

File metadata and controls

92 lines (71 loc) · 5.1 KB

OpenCV-Bootstrap

OpenCV配置工具, 适用于Windows下的Visual Studio工程,同时也支持Mac OS X/Linux等系统。

更新

  • Windows Release版已上传,该版本自带CMake,无需另外安装. 下载链接
  • 新增生成VS2015脚本。
  • 改进了代码文件的结构,工程文件夹结构更加清爽。
  • 新增Eclipse CDT工程生成脚本。

简介

这是一个基于CMake的OpenCV配置工具,拜托无聊烦躁的OpenCV配置过程,相比于linux或者Mac OS X用户,Visual Studio的使用者更少接触OpenCV官方支持的CMake,每次依靠手工配置或者property文件配置其实都是浪费生命。

通过opencv-bootstrap工具,你可以在几秒钟内生成配置成功的OpenCV工程。而且你可以拥有各个版本的OpenCV,切换也十分方便。

使用说明

依赖

(如果CMake和OpenCV都已经安装,可以跳过这个步骤)

  • CMake
    1. Windows:
    • 如果你用msi-installer, 当安装程序询问是否Add CMake to the PATH,选YES.
    1. Linux:
    • 最好的方式就是用系统自带的包管理器,apt-get, yum等等,手动编译请自己解决。
    1. OS X:
    • 同上,homebrew安装最方便
    • 如果下的是CMake的安装程序,安装后执行一次Tools->Install For Command Line Use,工具->安装命令行(不知道有没有中文的,大概是这样)
  • OpenCV
    1. Windows:
    • 从官网下载压缩包,比如OpenCV-3.1.0.zip, 解压到任意目录,比如. "D:\Library\opencv"
    1. 类Unix OS:
    • 同CMake,用自带包管理器, 比如Ubuntu: sudo apt-get install opencv-dev.
    • 熟悉OpenCV的可以手动编译,这样可以自己挑编译选项(比如 BUILD_SHARED_LIBS=ON 是编译动态链接库, OFF可以编译静态链接库)

整理你自己的代码

(如果你没有现成的代码,想生成一个demo或者空的工程,可以跳过这一步)

  • 把要include的第三方头文件放在/path/to/project/include目录中, 在代码中记得用尖括号**"#include <xxx.h>"**. 我一般把第三方库的头文件放在这里.
  • 把其他所有的代码(包括头文件和源文件)放在/path/to/project/src, 代码中用引号**"#include "xxx.h"**包含

可选项

用文本编辑器打开/path/to/project/build下的CMakeLists.txt. 目前一共有4个选项

默认情况下,Windows用户需要修改CUSTOM_OPENCV_DIR, linux或者Mac用户什么都不用管

  • SET(PROJECT_NAME "opencv-bootstrap") : 引号内可以改成想要的工程名字
  • SET(LINK_OPENCV_STATIC ON) : 暂时只支持Windows, 如果ON,就是链接静态库(简单说就是不再需要依赖OpenCV的dll文件),OFF的话就是动态链接
  • SET(CUSTOM_OPENCV_DIR "D:\\Dev\\opencv\\build") : Windows用户这里改成OpenCV的解压目录,记得包含到xx\build文件夹,这里才是真正能找到OpenCV的目录。另外提一句,你可以有各种版本的OpenCV,解压在不同的文件夹下,只要修改这个目录就可以切换OpenCV版本了。
  • SET(USE_CUSTOM_OPENCV_DIR_IN_NIX OFF) : 非Windows用户,这里可以强制寻找其他位置的OpenCV,不然就直接找系统默认的位置,比如 "/usr/local/lib"

运行脚本

# 打开命令行
$cd /path/to/project
$cd build

# VS工程(VS2015用create_vs2015_project.bat)
$create_vs2013_project.bat
# 双击bat脚本也可以运行,只不过看不到成功或者失败的提示

# Eclipse CDT
$./generate_eclipse_cdt.sh
# 在Eclipse里,选择import project as a makefile project
# "File -> Import -> Existing code as Makefile project" -> 浏览到/path/to/proj/build/cdt4打开

# 如果不需要工程,可以直接生成Makefile
$./build_script.sh

成功生成后,VS工程在build/vc12 文件夹. 如果是生成Makefile会在build文件夹下。


其他的一些说明

静态或者动态链接(LINK_OPENCV_STATIC)

目前Windows VS工程默认选择静态链接,如果失败的话,可能是OpenCV压缩包内不包含静态链接库,那么就需要改成SET(LINK_OPENCV_STATIC OFF)

  • Pros
    • 不用再包含opencv*.dll文件了
    • 也不用管哪些dll文件是需要包含的了
    • 简单的工程一个exe就搞定了
  • Cons
    • 生成的可执行文件会变大,复用性变差。
    • C++运行库的兼容性也许会变差,这点没测试过.

nix用户单独开启这个选项是没用的,如果有需求,可以手动编译OpenCV,选择BUILD_SHARED_LIBS=OFF,再使用这个选项

在Windows下运行生成的exe程序

在传统的OpenCV教程里, 一般很早就需要把OpenCV加到系统环境变量中,那样你才能找到dll文件

但是,只要你正确设置了CUSTOM_OPENCV_DIR选项,这个工具不需要这一步

  • 如果是静态链接,生成的exe随便放哪台windows电脑应该都能运行(确保vc++库存在)
  • 如果是动态链接,那么运行可执行文件需要拷贝opencv_xxx.dll到同目录 或者 把opencv加到系统环境变量,不然exe找不到dll。