VS2019配置opencv详细图文教程和测试代码的实现
作者:木芽笔记 发布时间:2023-07-17 13:49:31
摘要:
vs2019新鲜出炉,配置opencv又有哪些不一样呢,这个教程将会一步一步的教你如何配置opencv和跑动opencv一个简单的项目。
环境:
系统:win10系统截至20190523版本
opencv版本:3.4.1版本
IDE:宇宙最强IDEA最新版本2019社区版
教程:
1、下载opencv安装包,由于4.0.1版本会出现不同的错误,我们将使用3.4.1版本。官网下载链接:https://opencv.org/releases.html#。
2、下载完opencv安装包后,双击开始安装,选择安装目录,因为opencv会自己解压一个opencv文件夹,所以我们可以直接选一个合适目录即可,我在选择的是D:\Path(需要记住后面还要使用),选择后点击Extract
3、静待解压结束
4、解压结束后,鼠标右键此电脑,打开属性,打开高级系统设置,选择环境变量,找到系统变量中的path变量,双击它,点击新建,将你解压的opencv文件夹中的D:\Path\Opencv\build\x64\vc15\bin路径添加到当中,然后一路确认即可。
5、找到解压文件夹,我们选择v15->bin文件夹,找到三个文件。
6、将bin目录下面的opencv_world341.dll和opencv_world341d.dll文件复制到C:\Windows\SysWOW64这个文件夹里面即可,将bin目录里面的opencv_ffmpeg341_64.dll复制到C:\Windows\System32这个文件夹里面。
7、我们打开vs2019,然后新建空项目,菜单栏->视图->其他窗口->属性管理器,找到Debug|X64,如图:
8、鼠标右键Debug|X64,然后选择属性,VC++目录->常规->包含目录,添加三个路径:D:\Path\Opencv\build\include\,D:\Path\Opencv\build\include\opencv,和D:\Path\Opencv\build\include\opencv2,如图操作,确认。
9、VC++目录->常规->库目录中加入D:\Path\Opencv\build\x64\vc15\lib(以自己的安装目录为主)
10、链接器->输入->附加依赖项中加入opencv_world341d.lib,opencv_world341.lib,确认。
测试:
新建cpp文件(解决方案管理器,选择源文件,右键新建),贴图代码:
#include "cv.h"
#include "highgui.h"
int main(int argc, char** argv)
{
IplImage * pImg; //声明IplImage指针
if ((pImg = cvLoadImage("img.JPG", 1)) != 0)
{
cvNamedWindow("Image", 1); //创建窗口
cvShowImage("Image", pImg); //显示图像
cvWaitKey(0); //等待按键
cvDestroyWindow("Image"); //销毁窗口
cvReleaseImage(&pImg); //释放图像,注意pImg前面一定要加&
return 0;
}
return -1;
}
选择DebugX64运行调试,得出结果。
注意事项
综合几个问题
我使用的是341版本,用其他的不保证能运行,曾经401版本的就配置不了
第十步很多小伙伴都是复制我那两个文件名,没仔细看图片,要以自己的文件名为主。
麻烦看清楚bin和lib文件的区别(后面几步)
配置完系统环境重启电脑一下。
新建cpp文件到右侧的解决方案管理器,选择源文件右键新建
来源:https://xygeng.cn/post/219.html
猜你喜欢
- 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。 一、静态库和动态库的区别1. 静态函数库这类库的
- 用java实现循环队列的方法:1、添加一个属性size用来记录眼下的元素个数。目的是当head=rear的时候。通过size=0还是size
- 本文实例为大家分享了android自定义环形对比图的具体代码,供大家参考,具体内容如下1.首先在res/values里创建一个attr.xm
- 本Demo为练手小项目,主要是熟悉目前主流APP的架构模式.此项目中采用MVC设计模式,纯代码和少许XIB方式实现.主要实现了朋友圈功能和摇
- 多选和单选的不同之处单选的时候,选中一个就可以直接把结果返回,因此本身底部弹窗无需状态管理。但到多选的时候,需要知道当前选中的选项,有选项被
- 一、Flutter代码的启动起点我们在多数的业务场景下,使用的都是FlutterActivity、FlutterFragment。在在背后,
- 最近研究了一下如何在Android上实现CoverFlow效果的控件,其实早在2010年,就有Neil Davies开发并开源出了这个控件,
- C# 关于Invoke首先说下,invoke和begininvoke的使用有两种情况:control中的invoke、begininvoke
- 本文实例讲述了C#中HttpWebRequest的用法。分享给大家供大家参考。具体如下:HttpWebRequest类主要利用HTTP 协议
- 井字棋游戏要求在3乘3棋盘上,每行都相同或者每列都相同再或者对角线相同,则胜出.因此我们可以使用一个二维数组来表示棋盘,判断胜负只需要判断数
- 一、百度百科Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防
- 1.ArrayList 是基数组结构的,需要连续的内存空间从构造函数可以看出,ArrayList内部用一个Object数组来保存数据。对于无
- 因为mybatis好使,所以几乎需要操作数据库的时候,我都会使用mybatis,而且在一个正式的项目中,同时存在BS和CS的程序,都使用的M
- 前言之前我们提到了 CustomPaint er 的 Paint 可以使用渐变(GradientShader)来填充绘制的图形,本篇我们来介
- 本文实例为大家分享了Android实现支付宝支付密码输入界面的具体代码,供大家参考,具体内容如下效果图:主要代码:import java.u
- 1.最常用的方法是创建一个计数器,判断是否遇到‘\0',不是'\0'指针就往后加一。int my_strlen(co
- 最近的项目中要实现一个聊天的功能,类似于斗鱼TV的聊天室功能,与服务器端人商量后决定用WebSocket来做,但是在这之前我只知道Socke
- 在windows环境下,我们通常在IDE如VS的工程中开发C++项目,对于生成和使用静态库(*.lib)与动态库(*.dll)可能都已经比较
- 网络中数据传输经常是xml或者json,现在做的一个项目之前调其他系统接口都是返回的xml格式,刚刚遇到一个返回json格式数据的接口,通过
- 初学C++的朋友经常在类中看到public,protected,private以及它们在继承中表示的一些访问范围,很容易搞糊涂。今天本文就来