您的位置:首页 > 运维架构

OpenCV配置,从来没有这么简单!

2015-04-26 13:31 1466 查看

用CMAKE配置自己的OpenCV程序

---配置OpenCV从来没有这么简单!

本文需要一定的CMAKE知识,推荐阅读中文的 CMake Practice.pdf ,至于Cmake是什么,我只能说他是跨平台的项目管理工具,具体请各位客官百度之.这里假设你已经看了pdf,有不懂得也请自翻书.

昨天在网上得知,用Cmake写自己的opencv程序只需要使用一个CMakeLists.txt,配合万能的cmake命令就能生成万能的makefile文件,自动配置头文件包含,库包含,自动连接lib文件.

详情见官方文档 Using OpenCV with gcc and CMake,不过官方文件是用gcc进行的,而我用的是VS2013,于是经过一上午的奋斗,解决了配置Windows平台的方法.概述如下:

配置opencv只需一个CMakeLists.txt

cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

其中:

cmake_minimum_required(VERSION 2.8) 指定了最小的CMAKE版本,也就是说必须用 2.8以上版本

project( DisplayImage ) 定义了一个工程(VS中的解决方案),叫 DisplayImage

find_package( OpenCV REQUIRED ) 关键的一句,找到opencv的配置,并自动配置

add_executable( DisplayImage DisplayImage.cpp ) 添加一个可执行文件,即VC中的项目,名字叫DisplayImage,使用的源文件是 DisplayImage.cpp

target_link_libraries( DisplayImage ${OpenCV_LIBS} ) 关键的第二句, 指定链接库,其中 OpenCV_LIBS 是关键的一句中生成的

个人猜测:在linux和Mac等平台上需要用 make install 安装opencv,在opencv源文件目录下依次执行:

mkdir build
cd build
cmake ../
make
make install

径过实验,证实:

在Windows平台上需要添加环境变量CMAKE_PREFIX_PATH其内容为:

你的OpenCV目录/build

目的是让cmake找到

OpenCVConfig.cmake

OpenCVConfig-version.cmake

两个文件,然后cmake会依照其确定正确的生成平台和方式,这样VS就可以像gcc等一样能用cmake构建工程文件啦!

*不添加CMAKE_PREFIX_PATH变量有时也能工作,只是有时不能,具体不清楚为什么

*当然,你要将cmake的bin目录包含到path这样你才能直接使用 cmake 命令

opencv的配置文件(OpenCVConfig.cmake)生成了一系列CMAKE量:

# - OpenCV_LIBS : The list of libraries to links against.

# - OpenCV_LIB_DIR : The directory(es) where lib files are. Calling LINK_DIRECTORIES

# with this path is NOT needed.

# - OpenCV_INCLUDE_DIRS : The OpenCV include directories.

# - OpenCV_COMPUTE_CAPABILITIES : The version of compute capability

# - OpenCV_ANDROID_NATIVE_API_LEVEL : Minimum required level of Android API

# - OpenCV_VERSION : The version of this OpenCV build. Example: "2.4.0"

# - OpenCV_VERSION_MAJOR : Major version part of OpenCV_VERSION. Example: "2"

# - OpenCV_VERSION_MINOR : Minor version part of OpenCV_VERSION. Example: "4"

# - OpenCV_VERSION_PATCH : Patch version part of OpenCV_VERSION. Example: "0"

#

# Advanced variables:

# - OpenCV_SHARED

# - OpenCV_CONFIG_PATH

# - OpenCV_LIB_COMPONENTS

#

# ===================================================================================

#

# Windows pack specific options:

# - OpenCV_STATIC

# - OpenCV_CUDA
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv cmake 配置