c语⾔opencv开发,opencv-创建OpenCV项⽬过程详解
本教程中,我们假定C++是图像处理应⽤编程的主要语⾔,尽管实际上也提供了其他编程语⾔的接⼝和封装器(例如,Python、Java、MATLAB/Octave 等)。
本节说明如何⽤OpenCV的 C++API(⼀种易⽤的跨平台框架)开发应⽤。
库的⼀般使⽤⽅法
为了⽤ C++ 开发⼀个 OpenCV 应⽤,需要在代码中:包含 OpenCV 的头⽂件定义;
链接 OpenCV 库(⼆进制⽂件),以获取最终的可执⾏⽂件;
OpenCV 头⽂件位于OPENCV_BUILD\install\include\opencv2⽬录中,此处对于每个模块都有⼀个⽂件(*.hpp)。⽤ #include 指令包含头⽂件,如下所⽰:
//在代码中包含所使⽤的每个模块的头⽂件
#include /.hpp>
⽤这个指令,可以包含⽤户程序所需的每个头⽂件。另⼀⽅⾯,如果包含 opencv.hpp 头⽂件,那么所
有的头⽂件都将被⾃动包含,如下所⽰:
//在代码中包含所有的Opencv头⽂件
#include
注意,本地安装的所有模块都在OPENCV_BUILD\install\include\opencv2\opencv_modules.hpp头⽂件中定义,并在 OpenCV 的构建过程中⾃动⽣成。
#include 指令的使⽤并⾮总能保证对头⽂件的正确包含,因为告诉编译器在哪⾥能到包含⽂件是有必要的。这⼀点可以通过传递具有⽂件位置的⼀个特殊参数来实现(例如,对于 GNU 编译器为 I\)。
链接过程需要提供(动态或静态)链接库,在这⾥可以到所需的 OpenCV 功能。这个过程通常⽤链接器的两种类型参数完成:库的位置(例如,GNU 编译器的 -L\)和库的名字(例如,-l)。
开发新项⽬的⼯具
开发我们⾃⼰的 OpenCV C++ 应⽤的主要先决条件是:OpenCV 头⽂件和库⼆进制⽂件:当然,我们需要编译 OpenCV,并且对这样⼀个编译,辅助库是先决条件。该代码包应该使⽤与⽣成⽤户应⽤程序相同的编译器来编译。
⼀个 C++ 编译器:⼀些关联⼯具⽤作代码编辑器、调试器、项⽬管理器、构建过程管理器(例如,CMake)、修订控制系统(例如,Git、Mercurial、SVN 等)、类检测器等是⽅便的。通常,这些⼯具在⼀个集成开发环境(IDE)中⼀起进⾏配置。
任何其他辅助库:有时编写最终应⽤程序所需的任何其他辅助库,例如绘图、统计等,可能是需要的。
python新建项目教程对于编写 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***t 5.2.1 库和 Qt ⽣成器 IDE(3.0.1)使⽤ MinGW 4.8 编译⼯具包。编译 OpenCV 需要跨平台Qt 库所提供的新 UI 功能。
Qt ⽣成器是⼀个针对 C++ 的跨平台 IDE,它集成了我们编写应⽤时所需的⼯具。在 Windows 中,可以使⽤ MinGW 或 MSVC。图 1 展⽰了对于⼀个 OpenCV C++ 项⽬具有不同的⾯板和视图的 Qt ⽣成器的主窗⼝。
图 1 某 OpenCV C++ 项⽬中具有视图的 QT ⽣成器的主窗⼝
使⽤ Qt ⽣成器创建 OpenCV C++ 程序
接下来,我们说明如何⽤ Qt ⽣成器的 IDE 创建代码项⽬。特别地,我们将这个描述应⽤到⼀个 OpenCV ⽰例上。
使⽤ Qt ⽣成器,可以为任意 OpenCV 应⽤程序创建项⽬。要做到这⼀点,需要导航到File|New File or File|Project,然后导航到Non-Qt Project|Plain C++Project。之后,必须选择⼀个项⽬名字和将要存储的位置。
再下⼀步,为该项⽬(在该⽰例中,台式机为 Qt 5.2.1MinGW 32位)选择⼀个⼯具包(即编译器),并为⽣成的⼆进制⽂件定位。通常,使⽤两种可能的⽅法构建配置(配置⽂件):debug 和 release。这些配置⽂件设置合适的标志(flag)来构建和运⾏⼆进制⽂件。
使⽤ Qt ⽣成器创建⼀个项⽬时,⽣成两个特殊⽂件(具有 .pro 和 .pro.user 扩展名)来配置构建和运⾏过程。该构建过程是通过项⽬创建期间所选择的⼯具包确定的。对于 Qt 5.2.1MinGW 32 位包,这个过程则依赖于 qmake 和 mingw32-make ⼯具。使⽤ *.pro ⽂件作为输⼊,qmake 会为驱动每个配置⽂件(即 release 和 debug)的构建过程,产⽣该⽣成⽂件。在 Qt ⽣成器 IDE 使⽤ qmake ⼯具替代CMake,可简化软件项⽬的构建过程。只需⼏⾏信息,即可⾃动产⽣⽣成⽂件。
以下代码⾏表⽰⼀个 *.pro ⽂件的⽰例(例如,showImage.pro):TARGET: showImage
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += \
showImage.cpp
INCLUDEPATH += C:/opencv300-buildQt/install/include
LIBS += -LC:/opencv300-buildQt/install/x64/mingw/lib \
-lopencv_core300.dll \
-lopencv_imgcodecs300.dll\
-lopencv_highgui300.dll\
-lopencv_imgproc300.dll
上⾯的⽂件说明 qmake 所需的选项,以便为项⽬构建⼆进制代码产⽣合适的⽣成⽂件。以⼀个标签开
始的每⼀⾏,指定⼀个选项(TARGET、CONFIG、SOURCES、INCLUDEPATH 和 LIBS),后跟⼀个标志来添加(+=)或删除(-=)该选项的值。在这个⽰例项⽬中,使⽤⾮ Qt 控制台应⽤。
可执⾏⽂件是 (TARGET)和源⽂件 showImage.cpp(SOURCES)。因为这个项⽬是⼀个基于 OpenCV 的应⽤,所以后两个标签指定头⽂件的位置(INCLUDEPATH)以及由这个特定项⽬(core、imgcodecs、highgui和imgproc)所使⽤的 OpenCV 库(LIBS)。
注意,⾏尾的反斜线表⽰续⾏。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论