VS2017配置opencv教程(超详细!!!)

article/2025/10/12 2:48:32

 

前言:刚开始是不打算写这篇博客的,但是我最近为了完成对老师布置的区域生长算法,强行要配置一波opencv,因为换了电脑,所以选择了有黑黑主题酷酷的VS2017,但无奈网上的博客关于vs2017配置Opencv不够全(vs2010配置opencv的倒是贼多!),我当时是看了将近10篇文章才配置成功,所以在此我来从一个新入坑的角度来说一下怎么完整的配置一个OPencv!下面就分步来进行说明吧!

注意:不是博主这个版本的opencv本教程也是实用的,只需要改一点点东西就行,后面会进行提示!

 

第一步:下载opencv安装包

下载的途径有三种:

1、官网下载

在此,说明一下,没有必要去根据博主 的博客下载与博客相应的版本,其实只需要改一点点东西即可,后面进行说明,官网下载真的是贼头大,首先下载好好的突然说下载中断,而且无法恢复,此外,还慢,毕竟外网,没有办法。一个安装包大概100多M,而下载速度只有50多K(校园网20K,对面宿舍宽带50K),所以最后我实在无法忍受,已经失败了N次,时间紧,就没必要在这一棵树上撞死。

但是网好的朋友也可以试试,在此我给出官网的网址,大家可以根据自己情况选择合适的版本(我的是3.4.1版本)

网址:https://opencv.org/releases.html#

 

 

2、网上资源

靠谱的是CSDN等博主提供的安装包,但是是要C币的,我一般不会充值的,所以如果条件允许的话可以选择这个

https://download.csdn.net/download/yu2439/10369150?utm_source=bbsseo(其中的一个网址)

还有一个建议就是不要去尝试在一些钓鱼网站去下载opencv,我上回为了下载一个matlab破解版,虽然一路小心翼翼,最终下载了将近7、8个捆绑软件,连卸载时也给我加两个。。。。

 

3、身边同学或者一起搞编辑的朋友们啊

我的opencv就来自我对面宿舍的同学,他在官网下载成功了,直接用U盘拷过来用,还不是美滋滋,在此我给个百度网盘链接:opencv3.41

 

二、解压下载文件

 

双击下载好的或者拷好的安装包,选择解压路径后点Extract即可完成解压,解压后会自动生成一个opencv的文件夹(图2)

图3中的文件夹如果配置环境比较多的筒子们还是非常眼熟的。

 

第三步:配置系统变量(WIN10)

1、找到此电脑(图4)

2、右键->属性->高级系统设置->环境变量

找到系统变量中的path变量,双击它,点击新建,将你解压的opencv文件夹中的***opencv\build\x64\vc14\bin路径添加到当中。这里我是选择了vc14这个子文件夹,也可以选择15,但后面要做出相应调整,所以不妨就vc14咯!

注意:路径粘贴后记得点确定,并在外面点能点的确定全点选一遍!

 

详细操作可看下图!

 

 

 

 

 

 

 

 

以上完成了系统变量的配置,其实不是特别复杂,说简单点就是拷贝个路径

 

 

第四步:相关文件的配置

 

注意:网上很多教程没有这一步,会报那种找不到dll文件的错误,是因为没有将opencv里面的相关文件复制到C盘中的文件夹里面

操作方法:将bin目录下面的opencv_world341.dll和opencv_world341d.dll文件复制到C:\Windows\SysWOW64这个文件夹里面即可

将bin目录里面的opencv_ffmpeg341_64.dll复制到C:\Windows\System32这个文件夹里面(详细看图)

如果是opencv其他的版本,把对应的dll文件移动到上述两个C盘文件夹即可!

 

 

 

 

 

 

 

第五步:进入VS2017配置属性管理器进行相关配置

 

1、新建一个项目,我这里建了一个空项目

2、进入属性管理器,菜单栏->视图->其他窗口->属性管理器

3、对Debug|X64进行配置,右键Microsoft.Cpp.x64.user,点击属性

4、这里我们对属性中的 VC++目录->包含目录和VC++目录->库目录进行添加相关路径,对 链接器->输入->附加依赖项进行添加相关路径

5、包含目录中加入

F:\OPENCV\opencv\build\include

F:\OPENCV\opencv\build\include\opencv

F:\OPENCV\opencv\build\include\opencv2

库目录中加入

F:\OPENCV\opencv\build\x64\vc14\lib

6、链接器->输入->附加依赖项中加入

opencv_world341d.lib

注意:博主后面了解到release|X64的配置为可选项,后面也有热心读者提醒,所以下面的这一步可以不做,因为编译时只用到了debug,release是发布程序时才会用到。

//7、对Release|X64进行配置,右键Microsoft.Cpp.x64.user,点击属性

//链接器->输入->附加依赖项中加入

//opencv_world341.lib

注意:如果是opencv其他版本,只需要将将上述的依赖项文件稍作修改即可;eg:如果是opencv版本3.4.0,只需要将dll名字改为opencv_world340d.lib即可,依次类推!

 

 

 

第六步:勾选微软符号服务器(此步为可选项)

其实到上一步已经配好了,但是到了关键时候VS2017总是说我少各种dll文件,百度上面说不用理这种错误,可以选择勾选微软符号服务器来下载缺失的dll文件

操作步骤:左键调试->选项->常规 勾选启动源服务器支持

符号那一项勾上微软符号服务器

注意:可以用一个文件夹来缓存下载的dll文件,只是第一次加载,不用担心。或者,你也可以等加载完了之后,再把之前勾选的取消掉,也没有问题。 我建了一个文件夹(文件夹是我自己建的),后面发现它下载了很多pdb文件!

 

 

 

 

注意:到上面所有工作,opencv已经配完了,注意解决方案平台那一栏要换成X64(因为我们一直都在配X64)

 

第七步:测试环节!

注意:由于很多人遇到图片无法输出的情况,在此特地添加一条需要注意的事项,读入图片路径时有两种方法。

(1)绝对路径

eg:Mat img = imread("F:\\suoxiaotu\\poyanghu缩小图.tif");

注意这个地方的双斜杠很重要,直接弄过来的图片途径是只有一个斜杠的,两个斜杠的原因应该是第一个斜杠是转义字符。

(2)图片路径

eg:Mat img = imread("poyanghu缩小图.tif");

这个地方有两点需要注意:第一个就是大家的图片格式一定要分清楚,建议自己右键查看目标图片的属性,另一个就是要注意这样做的前提条件就是你的图片就在你所建工程的目录下。不然会显示找不到图片。

#include <iostream>  
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  using namespace cv;int main()
{// 读入一张图片(poyanghu缩小图)    Mat img = imread("F:\\suoxiaotu\\poyanghu缩小图.tif");// 创建一个名为 "图片"窗口    namedWindow("图片");// 在窗口中显示图片   imshow("图片", img);// 等待6000 ms后窗口自动关闭    waitKey(6000);return 0;
}

 

输出:

 

以上,配置完成!

[-_-]眼睛累了吧,注意劳逸结合呀[-_-]

”若您愿意的话,请博主喝杯咖啡呗“

 

下面是交流群,大家可以互相交流交流经验,互相解决配置遇到的问题,互相学习,不只是opencv!群号:830792425

(2019年2月6号更新)可以说,博主这一篇文章就解决了我绝大多数问题!唯一补充的一点是,我用博主的方法,在运行代码的时候,发现waitKey(6000);这个函数结束后,其申请的内存没有正常释放,所以会引发异常。所以需要在这句的后面加上destroyAllWindows();实现内存的手动回收 @jerryNYX

 

(2019年3月4号更新)加载符号遇到问题的朋友:“第六步勾选微软服务器”可以省略,把勾取消掉就能运行了,不然会卡住。希望对大家有帮助。@æ°å:

(2019年4月22号更新)  谢谢博主,除了release部分我没有配置以外,其他部分按照博主的方法配置成功了。谢谢。@blackkkkk

(2019年5月8日更新)小白成功了!非常感谢楼主!我遇到的问题“无法打开PDB文件”或者是“图像显示出来是灰色”的可能解决方法是:Debug|X64只放opencv_world341d,Release|X64只放opencv_world341 @https://me.csdn.net/weixin_40288785

(2019年5月9日更新)主要针对CSDN编辑器的bug(给我的博客增加了好多空格,强迫症受不了),另外为方便阅读,将所有图片全部居中。


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

相关文章

opencv 一 基本运行环境配置(下载安装、编写代码、配置环境)

从0开始下载opencv并配置环境变量&#xff0c;然后在vs2019中新建c项目&#xff0c;并配置opencv。最后新建代码&#xff0c;测试opencv的完整教程。 1、opencv下载安装 1.1 opencv下载 方式一&#xff1a;官网下载安装&#xff0c;官网地址&#xff1a;Releases - OpenCV 方…

OpenCV安装及其开发环境配置(C++)

目录 第一章 Opencv安装及其环境变量配置 1.1下载并安装OpenCV 1.2 OpenCV环境变量配置 第二章 Visual Studio 2019 编译器下载安装 第三章 OpenCV开发环境配置(C) 3.1创建项目 3.2 添加包含目录 3.3 添加库目录 3.4 添加附加依赖项 3.5 后续问题的检验和处…

OpenCV配置教程

文章目录 前言一、下载和安装OpenCV SDK二、配置包含路径三、配置库目录&配置链接器四、配置环境变量五、dll文件复制到system32中六、验证配置结果七、结语 前言 本篇主要记录自己配置OpenCV4的步骤和心得。IDE为Visual Studio2017&#xff0c;OpenCV版本号为4.5.5 目前…

【sql注入教程】SQL注入是什么?我们如何去玩转它

【sql注入教程】SQL注入是什么&#xff1f;我们如何去玩转它 本文转自&#xff1a;i春秋社区 SQL注入攻击是黑客攻击数据库最常见手段之一。简单讲&#xff0c;SQL注入攻击是黑客利用网站程序漏洞&#xff0c;通过提交精心构造的SQL语句&#xff0c;以达到窃取数据库信息、修改…

SQL注入各种注入方式

前面似乎对于注入方式讲的并不是很清楚,打算再详细讲讲各种注入方式 POST注入 相比于GET,POST的传输数据的方式更为隐蔽,不会直接出现在url中,需要自己去利用用户框和密码框进行注入,就从用户入手,查用户就需要用到select. 有的同学可能一脸懵,我是怎么传输数据过去的呢? PO…

sql注入新手入门 从实战讲解SQL注入(手动注入+MySQL+靶场源码)

资源放在下面&#xff0c;自取 https://blog.csdn.net/qq_45514735?spm1011.2266.3001.5343 1、我们首先用小皮面板和sqli-labs靶场源码搭建一个环境 2、简单的注入讲解 打开第一关我们看看 1、寻找注入点 这里提示我们id参数有问题&#xff0c;尝试拼接url&#xff08;其…

sql注入基础

本文章仅供学习交流使用 一、数据库类型 1、Mysql基础语句及数据库注入语句 &#xff08;1&#xff09;基础语句&#xff1a; &#xff08;数据库查询规则&#xff0c;需要逐步进入&#xff09; 数据库A对应网站&#xff08;第一步&#xff09;show databases; 表名&#x…

SQL注入分析

趁着假期还没结束&#xff0c;写博客记录自己网络安全学习经历&#xff0c;也当记笔记方便以后复习。卷起来兄弟们&#xff01; 1.安装抓包工具Burp Burp中文版安装教程 2.下载并配置phpstudy Pikachu安装教程 3.下载本地靶场Pikachu Pikachu安装教程 4.下载并配置火狐浏览…

BurpSuit官方实验室之SQL注入

BurpSuit官方实验室之SQL注入 这是BurpSuit官方的实验室靶场&#xff0c;以下将记录个人SQL注入共17个Lab的通关过程 Web Security Academy: Free Online Training from PortSwigger lab1&#xff1a; SQL injection vulnerability in WHERE clause allowing retrieval of …

SQL注入的常见方式

目录 联合查询&#xff08;union&#xff09;函数介绍order byunion select 操作 布尔盲注 &#xff08;and or&#xff09;函数介绍mid 从中间截取字符left 从左开始截取字符ord、ascii 转成ascii码length 统计长度andregexp 正则注入-针对MySQL 操作1. 猜数据库长度2. 猜数据…

PentesterLab靶场sql注入流程

环境安装 随便在网上找了个Pentester的靶场&#xff0c;结果是2013年的&#xff0c;那就从2013年的这个靶场开始学习 下载镜像的地址&#xff1a; https://pentesterlab.com/exercises/web_for_pentester_II/iso 正常找个虚拟机&#xff0c;进行iso的安装 安装完成后&…

SQL注入教程——(三)简单的注入尝试

本文将以简单的SQL注入实例来讲解SQL注入的基本思路与流程,当然本文实例只是注入的一种情况,初学者应重点理解思路,学会举一反三。 GET与POST 进行SQL注入攻击,大家还需要了解两种基本的 HTTP 请求方法:GET 和 POST。 在客户机和服务器之间进行请求-响应时,两种最常被…

DVWA通过攻略之SQL注入

目录 1.SQL Injection SQL注入2.实验演示2.1.low2.3.high2.4.impossible 3.sqlmap自动化注入3.1.low3.2.medium3.3.high 4.SQL注入&#xff08;盲注&#xff09;5.防范措施 1.SQL Injection SQL注入 SQL是操作数据库数据的结构化查询语言&#xff0c;网页的应用数据和后台数据…

SQL注入及实战

SQL注入及实战 本文记录各种SQL注入类型的实操过程 SQL注入定义&#xff1a;由于程序中对用户输入检查不严格&#xff0c;用户可以提交一段数据库查询代码&#xff0c;根据程序返回的结果&#xff0c;获得某些他想得知的数据&#xff0c;这就是所谓的SQL Injection&#xff0…

web 漏洞入门之 —— SQL 注入教程

SQL 注入是最常见、最被人们熟知的 web 漏洞。根据百科的解释&#xff1a;所谓SQL注入&#xff0c;就是通过把SQL命令&#xff0c;插入到Web表单提交或输入域名或页面请求的查询字符串&#xff0c;最终达到欺骗服务器执行恶意的SQL命令。 比如某个公司有一个员工管理系统&#…

SQL注入基础教程

注&#xff1a;本篇不讲关于sql-labs的搭建&#xff0c;如有需要请私信我&#xff0c;我将会出一期详细的配置教程 SQL注入基础教程 数据库的结构注释符SQL注入之基础注入 数据库的结构 在学习数据库之前&#xff0c;我们首先要了解数据库的结构。 一般数据库由三个部分组成&…

SQL 注入教程:通过示例学习

数据是信息系统最重要的组成部分之一。组织使用数据库驱动的 Web 应用程序从客户那里获取数据。SQL是结构化查询语言的首字母缩写。它用于检索和操作数据库中的数据。 什么是 SQL 注入&#xff1f; SQL 注入是一种攻击动态 SQL 语句以注释掉语句的某些部分或附加始终为真的条…

sql注入详解

目录 前言? ? 一、漏洞原因分析 二、漏洞危害 三、sql注入防范 四、如何挖掘sql注入漏洞 五、常见的注入手法 联合查询(union注入) 报错注入 基于布尔的盲注 基于时间的盲注 HTTP头注入 宽字节注入 堆叠查询 二阶注入 六、sql注入getshell的几种方式 前言 结…

SQL注入教程

目录 基础sql语法基础注释sql注入漏洞产生的条件 sql注入的分类基于从服务器收到的响应基于数据库种类基于如何处理输入的SQL查询(数据类型)参数位置注入方法注入流程 万能密码ACCESS注入流程判断方法注入实战 MSSQL注入流程默认数据库函数注入过程 MySql注入&#xff08;重头戏…

SQL注入基本教程

注&#xff1a;只是自己学习记录&#xff0c;若有不对的地方请指出&#xff0c;文章有过一次修改&#xff0c;修改了关于order by函数的知识点 个人小站 SQL注入基本教程 数据库的结构注释符SQL注入简单教程 数据库的结构 学习SQL注入首先要知道数据库的结构 数据库由三个部分…