创建OpenCV项目过程详解

  • 内容
  • 评论
  • 相关

本教程中,我们假定 C++ 是图像处理应用编程的主要语言,尽管实际上也提供了其他编程语言的接口和封装器(例如,Python、Java、MATLAB/Octave 等)。

本节说明如何用 OpenCV 的 C++API(一种易用的跨平台框架)开发应用。

库的一般使用方法

为了用 C++ 开发一个 OpenCV 应用,需要在代码中:

  1. 包含 OpenCV 的头文件定义;
  2. 链接 OpenCV 库(二进制文件),以获取最终的可执行文件;

OpenCV 头文件位于 OPENCV_BUILD\install\include\opencv2 目录中,此处对于每个模块都有一个文件(*.hpp)。用 #include 指令包含头文件,如下所示:

//在代码中包含所使用的每个模块的头文件
#include <opencv2/<module_name>/<module_name>.hpp>

用这个指令,可以包含用户程序所需的每个头文件。另一方面,如果包含 opencv.hpp 头文件,那么所有的头文件都将被自动包含,如下所示:

//在代码中包含所有的Opencv头文件
#include <opencv2/opencv.hpp>

注意,本地安装的所有模块都在 OPENCV_BUILD\install\include\opencv2\opencv_modules.hpp 头文件中定义,并在 OpenCV 的构建过程中自动生成。

#include 指令的使用并非总能保证对头文件的正确包含,因为告诉编译器在哪里能找到包含文件是有必要的。这一点可以通过传递具有文件位置的一个特殊参数来实现(例如,对于 GNU 编译器为 I\<location>)。

链接过程需要提供(动态或静态)链接库,在这里可以找到所需的 OpenCV 功能。这个过程通常用链接器的两种类型参数完成:库的位置(例如,GNU 编译器的 -L\<location>)和库的名字(例如,-l<module_name>)。

在 https://gcc.gnu.org/onlinedocs/ 和 https://www.gnu.org/software/make/manual/ 下,可以找到对于 GNU GCC 和 Make 可用的在线文档的一个完整列表。

开发新项目的工具

开发我们自己的 OpenCV C++ 应用的主要先决条件是:

  • OpenCV 头文件和库二进制文件:当然,我们需要编译 OpenCV,并且对这样一个编译,辅助库是先决条件。该代码包应该使用与生成用户应用程序相同的编译器来编译。
  • 一个 C++ 编译器:一些关联工具用作代码编辑器、调试器、项目管理器、构建过程管理器(例如,CMake)、修订控制系统(例如,Git、Mercurial、SVN 等)、类检测器等是方便的。通常,这些工具在一个集成开发环境(IDE)中一起进行配置。
  • 任何其他辅助库:有时编写最终应用程序所需的任何其他辅助库,例如绘图、统计等,可能是需要的。

对于编写 OpenCV C++ 应用,最流行的可用编译工具包是:

  • Microsoft Visual C(MSVC):只在 Windows 上支持,与 IDE Visual Studio 集成得很好,当然也可以与其他跨平台的 IDE 集成,例如,Qt 生成器或 Eclipse。与目前最新的 OpenCV 发布兼容的 MSVC 版本是 VC 10、VC 11 和 VC 12(Visual Studio 2010、2012 和 2013)。
  • GNU Compiler Collection GNU GCC:这是由 GNU 项目开发的一个跨平台的编译器系统。对于 Windows 来说,该工具包就是众所周知的 MinGW(最小的 GNU GCC)。与目前 OpenCV 发布兼容的版本是 GNU GCC 4.8。该工具包可以和若干 IDE 一起使用,例如,Qt 生成器、Code::Blocks、Eclipse 等。

对于本书提供的示例,我们为 Windows+Qt 5.2.1 库和 Qt 生成器 IDE(3.0.1)使用 MinGW 4.8 编译工具包。编译 OpenCV 需要跨平台 Qt 库所提供的新 UI 功能。

注意,对于 Windows,可以从 http://qt-project.org/ 下载一个 Qt 包(包括 Qt 库、Qt 生成器和 MinGW 工具包)。这个包大约 700MB。

Qt 生成器是一个针对 C++ 的跨平台 IDE,它集成了我们编写应用时所需的工具。在 Windows 中,可以使用 MinGW 或 MSVC。图 1 展示了对于一个 OpenCV C++ 项目具有不同的面板和视图的 Qt 生成器的主窗口。


某 OpenCV C++ 项目中具有视图的 QT 生成器的主窗口
图 1 某 OpenCV C++ 项目中具有视图的 QT 生成器的主窗口

本文标题:创建OpenCV项目过程详解

本文地址:https://www.hosteonscn.com/4119.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注