【学习OpenCV4】案例1:Windows OpenCV C++语言开发环境搭建

article/2025/10/26 4:18:34

本文的案例内容源自于图书**《学习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"头文件,在后续章节讲解每个模块时,都会讲解包含该模块对应的头文件,导读内容可以查看当前模块暴露的算法函数。


http://chatgpt.dhexx.cn/article/TNlwDhhy.shtml

相关文章

【学习OpenCV4】OpenCV4入门介绍

本文内容大部分来自图书《学习OpenCV 4&#xff1a;基于Python的算法实战》&#xff0c;该书是国内第一本完整介绍OpenCV4的图书&#xff0c;第一章有在各个平台搭建环境的介绍&#xff0c;后面每个章节都有对模块的导读、模块经典算法的案例介绍以及进阶阅读&#xff0c;适合图…

学习OpenCV(1)概述

目录 基础知识 OpenCV的起源与目标 练习 基础知识 什么是OpenCV OpenCV是一个开源的计算机视觉库。OpenCV设计用于进行高效的计算&#xff0c;十分强调实时应用的开发。 什么是计算机视觉 计算机视觉这种技术可以将静止图像或视频数据转换为一种决策或新的表示。所有这种…

学习OpenCV3:Cmake+MinGW编译OpenCV

1. 准备 1.1 下载OpenCV源码 OpenCV下载地址1&#xff1a;https://opencv.org/releases/ OpenCV下载地址2&#xff1a;https://github.com/opencv/opencv/releases OpenCV下载地址3&#xff1a;https://github.com/opencv/opencv 提示&#xff1a;下载地址1和下载地址2可以直…

【学习OpenCV4】键盘鼠标操作总结

本文分享内容来自图书《学习OpenCV 4&#xff1a;基于Python的算法实战》&#xff0c;该书内容如下&#xff1a; 第1章 OpenCV快速入门&#xff1b; 第2章 图像读写模块imgcodecs&#xff1b; 第3章 核心库模块core&#xff1b; 第4章 图像处理模块imgproc&#xff08;一&…

【学习OpenCV4】OpenCV4与opencv-contrib模块介绍

本文分享内容来自图书《学习OpenCV 4&#xff1a;基于Python的算法实战》&#xff0c;该书刚刚上市&#xff0c;是国内第一本系统讲解OpenCV4各个模块的图书&#xff0c;配套案例深入浅出的讲解。第一章有在各个平台搭建环境的介绍&#xff0c;后面每个章节都有对模块的导读、模…

学习OpenCV

因为一些项目需要&#xff0c;最近在学习OpenCv&#xff0c;以下是一些学习OpenCv这本书的一些简介&#xff0c;教程下载地址&#xff1a;《学习OpenCv》 《学习OpenCV》&#xff1a;计算机视觉是在图像处理的基础上发展起来的新兴学科。OpenCV是一个开源的计算机视觉库&#x…

学习opencv.js(1)图像入门

目标&#xff1a;了解如何阅读图像以及如何在网络中显示它。 读取图像&#xff1a;OpenCV.js 将图像保存为cv.Mat类型。我们使用 HTML 画布元素将cv.Mat传输到网络或反向传输。ImageData 接口可以表示或设置画布元素区域的底层像素数据。 1.从画布创建一个 ImageData对象 le…

学习OpenCV3:MinGW编译OpenCV到vs_version.rc.obj处出错

1. 错误描述 [ 65% ] Building RC object modules/world/CMakeFiles/opencv_world.dir/vs_version.rc.obj gcc: error: long: No such file or directory C:\Mingw-w64\mingw32\bin\windres.exe: preprocessing failed. mingw32-make[2]: *** [modules\world\CMakeFiles\opencv…

【从零学习OpenCV 4】opencv_contrib扩展模块的安装

本文首发于“小白学视觉”微信公众号&#xff0c;欢迎关注公众号 本文作者为小白&#xff0c;版权归人民邮电出版社所有&#xff0c;禁止转载&#xff0c;侵权必究&#xff01; 经过几个月的努力&#xff0c;小白终于完成了市面上第一本OpenCV 4入门书籍《OpenCV 4开发详解》。…

如何学习opencv源码

如何学习opencv源码 当你在使用opencv时&#xff0c;看到一个函数有没有想去了解他的源码&#xff0c;而又无从下手?这里我将带你脱离这种尴尬的境遇&#xff01; 面对这个问题&#xff0c;我自己也查找过许多的资料&#xff0c;网上有这样一种做法&#xff0c;步骤如下&…

从零开始学习opencv——在虚拟环境下安装opencv环境

毕设准备做cv相关项目&#xff0c;今天开始学习cv基础知识&#xff0c;课程为B站“【不要再看那些过时的OpenCV老教程了】2022巨献&#xff0c;OpenCV零基础小白最新版全套教程(人工智能机器视觉教程)” 0.自行安装python3.7,注意版本不能过高或过低&#xff0c;注意安装64位版…

【学习OpenCV4】OpenCV入门精讲(C++/Python双语教学)

大家好&#xff0c;我在CSDN开的OpenCV课程已经开课了&#xff0c;入口如下&#xff1a; OpenCV入门精讲&#xff08;C/Python双语教学&#xff09; 课程开始快一周了&#xff0c;收到了广大同学们的欢迎。 &#xff08;1&#xff09;评分很高&#xff1b; &#xff08;2&#…

opencv 深度学习

深度学习简史 深度学习很早就被提出&#xff0c;但一直停滞不前2011&#xff0c;微软在语言识别上使用&#xff0c;取得了突破2012&#xff0c;DNN在图像识别领域取得了惊人的效果&#xff0c;在ImageNet评测的错误率从26%降到了15%2016&#xff0c;AlphaGo击败人类&#xff0…

【学习OpenCV4】案例3:OpenCV Python语言开发环境搭建

本书分享内容来自图书学习OpenCV 4&#xff1a;基于Python的算法实战》&#xff0c;该书刚刚上市&#xff0c;是国内第一本系统讲解OpenCV4各个模块的图书&#xff0c;配套案例深入浅出的讲解。第一章有在各个平台搭建环境的介绍&#xff0c;后面每个章节都有对模块的导读、模块…

在pycharm2021.2中学习opencv图像处理,基于python3.9.7、pycharm完成配置

在pycharm中学习opencv图像处理 安装python下载python安装包开始安装 安装pycharm社区版下载pycharm安装包开始安装 启动pycharm创建第一个项目创建第一个项目设置项目存放路径首次运行python程序下载opencv-python库、添加解释器配置 开始图像处理的学习&#xff01;打开下载好…

【从零学习OpenCV 4】Windows系统中安装OpenCV 4

本文首发于“小白学视觉”微信公众号&#xff0c;欢迎关注公众号 本文作者为小白&#xff0c;版权归人民邮电出版社所有&#xff0c;禁止转载&#xff0c;侵权必究&#xff01; 经过几个月的努力&#xff0c;小白终于完成了市面上第一本OpenCV 4入门书籍《OpenCV 4开发详解》。…

【从零学习OpenCV 4】了解OpenCV的模块架构

本文首发于“小白学视觉”微信公众号&#xff0c;欢迎关注公众号 本文作者为小白&#xff0c;版权归人民邮电出版社所有&#xff0c;禁止转载&#xff0c;侵权必究&#xff01; 经过几个月的努力&#xff0c;小白终于完成了市面上第一本OpenCV 4入门书籍《OpenCV 4开发详解》。…

OpenCV入门基础学习

目录 一&#xff1a;OpenCV简介 二&#xff1a;OpenCV图像处理 图像 三&#xff1a;OpenCV图像处理 图像模式 四&#xff1a;OpenCV图像识别 图片操作 五&#xff1a;OpenCV图像处理 Mat类 六&#xff1a;OpenCV图像处理 图片 像素 七&#xff1a;OpenCV图像…

如何学习opencv

本文授权转载自贾老师的微信公众号"OpenCV学堂"。更多信息可扫描文末二维码关注公众号&#xff08;知乎已将二维码转换成链接&#xff0c;可自动跳转到微信&#xff09;。 一&#xff1a;学习OpenCV三个阶段 人工智能带火了计算机视觉的人才需求&#xff0c;作为计算…