【学习OpenCV4】案例1:Windows OpenCV C++语言开发环境搭建
本文的案例内容源自于图书**《学习OpenCV 4:基于Python的算法实战》**,该书是国内第一本完整介绍OpenCV4的图书,第一章有在各个平台搭建环境的介绍,后面每个章节都有对模块的导读、模块经典算法的案例介绍以及进阶阅读,适合图像处理、计算机视觉领域的初学者以及相关的工程开发人员。
另外,对计算机视觉入门的读者请参考图书**《深度学习计算机视觉实战》**,从理论讲解到实战案例,到模型部署一站式搞定,非常适合入门。
OpenCV库编译结果请关注公众号“计算机视觉与OpenCV”获取。
学习OpenCV4:OpenCV各模块介绍
Windows上进行C++开发,常用的IDE(集成开发工具)为Visual Studio,该软件由微软发布,最新版本为Visual Studio 2019(Visual Studio 2022正式版待发布)。本案例基于Visual Studio 2019开发,Visual Studio 2019的安装方法如下。
安装前读者需要去官网(https://visualstudio.microsoft.com/zh-hans/vs/)下载安装文件,对于个人开发者,可以选择下载社区版Community 2019,如图1.6所示。
图1.6
Community 2019下载的文件名称为vs_Community.exe,双击该文件进行安装,安装过程中读者可以选择下载安装工作负载(即不同开发环境)与单个组件,如图1.7所示。
图1.7
Visual Studio 2019支持C++桌面开发,Python开发,Node.js开发等,读者可以选择自己需要的环境进行安装,本案例需要C++桌面开发,勾选安装即可,安装完成重启即完成了Visual Studio 2019的安装。
OpenCV常用的两种开发语言是C++和Python,本节讲解在Windows下搭建OpenCV C++语言开发环境,环境搭建方法有两种:安装官方发布的库文件和源码编译。
第一种方法:库文件安装
使用库文件安装的方法进行环境搭建过程如下:
首先下载库文件,如图1.8所示,进入官网选择Library->Releases,进入Release库文件包下载页面。
图1.8
在图1.8中选择Windows系统的文件下载,点击选择之后会自动开始下载。
本案例选择OpenCV-4.5.2版本,下载的文件名为opencv-4.5.2-vc14_vc15.exe,双击该文件解压,如图1.9所示。
图1.9
也可以右键选择文件,“解压到当前文件夹”,会在当前路径下解压得到文件夹opencv,其中包含两个子文件夹:
– build,存放编译的二进制库文件;
– sources,存放当前版本的源码。
进入build文件夹,路径下有六个文件夹:
– bin,存放第三方库依赖文件;
– etc,存放资源文件;
– include,存放头文件;
– java,存放Windows系统Java库文件;
– python,存放Windows系统Python语言安装文件;
– x64存放Windows C++库文件,包含vc14和vc15两个版本。
对于Visual Studio 2019,可以选用最新版本的vc15编译器对应的库文件,vc15路径下包含两个文件夹:bin(存放动态库文件)和lib(存放静态库文件),OpenCV工具库调用最重要的三个文件为:头文件(存放于include文件夹)、动态库(opencv_world452.dll或者opencv_world452d.dll)以及静态库(opencv_world452.lib或者opencv_world452d.lib)。
下载解压完成后,需要配置OpenCV开发环境,并编写测试代码进行测试。
选择打开Visual Studio 2019,创建新项目。创建项目可以直接选择创建“控制台应用”,创建的项目中有主程序,并默认输出“Hello World”,如图1.10所示。
图1.10
配置新项目,设置项目名称和项目位置,解决方案名称可以使用默认的,和项目名称相同,如图1.11所示。
图1.11
在项目中需要配置OpenCV库引用才能使用OpenCV,环境配置需要配置三个方面内容:包含目录,库目录和链接器依赖项。包含目录与库目录的配置如图1.12所示。
图1.12
在“链接器-输入-附加依赖项”中配置附加依赖项,即静态库文件名称,如图1.13所示,配置时注意选择Debug或Release对应的静态库文件。
图1.13
选择“应用”和“确定”后即完成配置,然后编写测试代码测试OpenCV库的使用,本案例的测试方法为读取一张图像,并将图像显示出来。
// OpenCVdemo.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。#include <iostream>#include "opencv2/opencv.hpp"int main(){cv::Mat img = cv::imread("src.jpg", 1); //图像读取cv::imshow("测试图像显示", img); //图像显示cv::waitKey(0); //等待读者操作cv::destroyWindow("测试图像显示"); //窗口对象销毁}
选择项目,点击右键“生成”,编译项目,编译完成结果如图1.14所示。
图1.14
编译没有出错,此时可以点击图1.14中的“本地Windows调试器”或者按下F5,运行项目。如果读者没有做额外的配置,此时运行项目会弹出图1.15所示的错误框。
图1.15
这个错误称为“运行时错误”,运行时错误的常见原因是动态库文件无法找到或者不匹配。这种问题的解决办法有如下两种:
n 第一种方法是将动态库路径配置到环境变量中。读者可以选择“计算机—>属性—>高级系统设置—>环境变量”,找到Path变量,将OpenCV文件包中的opencv/build/x64/vc15/bin路径配置到环境变量中,这样运行时就能找到动态库的路径。
n 第二种方法就是将动态库拷贝到生成的可执行文件所在路径中,如图1.16所示。
图1.16
这两种办法是为了让可执行文件OpenCVdemo.exe能在搜索路径中找到OpenCV的动态库文件,当前路径和环境变量都是Windows系统中可执行文件链接时的搜索路径。
再次执行,程序正常运行,如图1.17所示,表明Windows系统中配置OpenCV C++语言开发环境完成。
图1.17
在C++语言开发时,需要包含"opencv2/opencv.hpp"头文件,该头文件对所有模块的头文件做了引用:
#ifndef OPENCV_ALL_HPP#define OPENCV_ALL_HPP// 该头文件仅用于定义哪些模块参与了编译,定义了HAVE_OPENCV_modulename的值#include "opencv2/opencv_modules.hpp"// Core模块为必需的模块#include "opencv2/core.hpp"// 通过HAVE_OPENCV_modulename检查可选模块的引入#ifdef HAVE_OPENCV_CALIB3D#include "opencv2/calib3d.hpp"#endif#ifdef HAVE_OPENCV_FEATURES2D#include "opencv2/features2d.hpp"#endif#ifdef HAVE_OPENCV_DNN#include "opencv2/dnn.hpp"#endif#ifdef HAVE_OPENCV_FLANN#include "opencv2/flann.hpp"#endif#ifdef HAVE_OPENCV_HIGHGUI#include "opencv2/highgui.hpp"#endif#ifdef HAVE_OPENCV_IMGCODECS#include "opencv2/imgcodecs.hpp"#endif#ifdef HAVE_OPENCV_IMGPROC#include "opencv2/imgproc.hpp"#endif#ifdef HAVE_OPENCV_ML#include "opencv2/ml.hpp"#endif#ifdef HAVE_OPENCV_OBJDETECT#include "opencv2/objdetect.hpp"#endif#ifdef HAVE_OPENCV_PHOTO#include "opencv2/photo.hpp"#endif#ifdef HAVE_OPENCV_STITCHING#include "opencv2/stitching.hpp"#endif#ifdef HAVE_OPENCV_VIDEO#include "opencv2/video.hpp"#endif#ifdef HAVE_OPENCV_VIDEOIO#include "opencv2/videoio.hpp"#endif#endif
如果读者对OpenCV结构比较熟悉,在使用时可以只包含对应的某个模块,如图像滤波功能调用可以只包含"opencv2/imgproc.hpp"头文件,在后续章节讲解每个模块时,都会讲解包含该模块对应的头文件,导读内容可以查看当前模块暴露的算法函数。
【学习OpenCV4】案例1:Windows OpenCV C++语言开发环境搭建相关推荐
- 【学习OpenCV4】案例3:OpenCV Python语言开发环境搭建
本书分享内容来自图书学习OpenCV 4:基于Python的算法实战>,该书刚刚上市,是国内第一本系统讲解OpenCV4各个模块的图书,配套案例深入浅出的讲解.第一章有在各个平台搭建环境的介绍, ...
- AliOS Things物联网操作系统学习第一步:Windows下AliOS Things开发环境搭建
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 人工智能编程入门博客 之前如果想要使用AliOS Things开发ESP8266模块的固件,开发环境 ...
- 最新Windows下Go语言开发环境搭建+GoLand配置
一.下载Go语言开发包 大家可以在Go语言官网(https://golang.google.cn/dl/)下载 Windows 系统下的Go语言开发包,如下图所示. 这里我们下载的是 64 位的开发包 ...
- 轻松玩转树莓派Pico之三、Windows+Ubuntu虚拟机模式下VSCode C语言开发环境搭建
目录 1.VSCode下载与安装 2.VSCode基础插件安装 3.SSH连接与配置 4.SSH免密登录 5.Pico编译 工欲善其事,必先利其器.之前的介绍的Pico流程都是通过命令行编译,没有进行 ...
- win10 C语言开发环境搭建
win10 C语言开发环境搭建 一.编辑器的选择 二.windows10下的开发环境 方法一: 1.下载msys64 2.更新安装包,下载mingw64 gcc编译器 3.打开clion编辑器,配置m ...
- 第1章 Window下VSCode的C语言开发环境搭建 (一)
文章目录 文档视频讲解链接地址 第01章 开发环境搭建 1.1 C语言开发环境搭建 1. 常用的C语言开发环境介绍 VC++ 6.0 VS 2019 Clion DevC++ vim编辑 VSCode ...
- 【链块技术10期】区块链基础语言(二)——GO语言开发环境搭建
原文链接:区块链基础语言(二)--Go语言开发环境搭建 一.操作系统位数的查询方法 在安装前首先要了解个人的电脑系统位数是32位还是64位. 1.1Windows系统查询方法 右击"计算 ...
- 1 Go语言开发环境搭建详细教程+go常见bug合集【Go语言教程】
Go语言开发环境搭建[Win.Linux.Mac] 1 SDK下载 官网地址:golang.org,因为一些原因国内可能无法访问.可以使用下面第二个链接. 国内地址访问:https://golang. ...
- ④ESP8266 开发学习笔记_By_GYC 【Ubuntu系统下ESP8266 开发环境搭建】
目录 ④ESP8266 开发学习笔记_By_GYC [Ubuntu系统下ESP8266 开发环境搭建] 一.安装前准备 1.乐鑫官方的ESP-IDF 编程指南 2.ESP-IDF风格的ESP8266 ...
最新文章
- PHP、Python 竟上榜最慢的现代编程语言
- 在MSN、QQ群、论坛上提问的决窍
- Spring Boot异常
- UA OPTI570 量子力学21 Atom Trapping
- Web前端面试指导(十八):用纯CSS创建一个三角形的原理是什么?
- 64位centOS5.4系统安装memcached
- discuz仿文明争霸游戏官网模版
- Vue cli3使用vue-awesome-swiper
- Atitit 数据库的历史与未来 目录 1.1. 两个对于数据库强需求的行业。电信 金融	1 1.2. 艾提拉分析 对数据库强需求行业金融	1 2. 数据库历史	2 2.1. ,上个世纪50,6
- .md文件用什么软件打开
- Python 安卓群控随机修改机型
- 原生ajax响应json数据
- DotNetBar控件的多文档界面的实现
- 开机出现invalid boot.ini filebooting from c:\windows\ntdetect failed 修复方法
- 入门GTD时间管理系统必读(链接必读--很完整的一个GTD系统)
- 03 day2--javascript笔记pink老师--对象
- Java实现快递管理系统一(views)
- 软件工程--面向对象的分析和设计方法
- Tushare(介绍)
- 简简单单玩转CSS3(1)