VS2019配置opencv详细图文教程和测试代码的实现

所属分类: 软件编程 / C 语言 阅读数: 120
收藏 0 赞 0 分享

摘要:

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文件到右侧的解决方案管理器,选择源文件右键新建

更多精彩内容其他人还在看

用标准c++实现string与各种类型之间的转换

这个类在头文件中定义, < sstream>库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。另外,每个类都有一个对应的宽字符集版本
收藏 0 赞 0 分享

C++如何通过ostringstream实现任意类型转string

再使用整型转string的时候感觉有点棘手,因为itoa不是标准C里面的,而且即便是有itoa,其他类型转string不是很方便。后来去网上找了一下,发现有一个好方法
收藏 0 赞 0 分享

C/C++指针小结

要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区
收藏 0 赞 0 分享

C++ 类的静态成员深入解析

在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静态成员变量和成员函数使用规则,再给出一个实例来加深印象
收藏 0 赞 0 分享

C++类的静态成员初始化详细讲解

通常静态数据成员在类声明中声明,在包含类方法的文件中初始化.初始化时使用作用域操作符来指出静态成员所属的类.但如果静态成员是整型或是枚举型const,则可以在类声明中初始化
收藏 0 赞 0 分享

C++类静态成员与类静态成员函数详解

静态成员不可在类体内进行赋值,因为它是被所有该类的对象所共享的。你在一个对象里给它赋值,其他对象里的该成员也会发生变化。为了避免混乱,所以不可在类体内进行赋值
收藏 0 赞 0 分享

C++中的friend友元函数详细解析

友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类。友元函数的特点是能够访问类中的私有成员的非成员函数。友元函数从语法上看,它与普通函数一样,即在定义上和调用上与普通函数一样
收藏 0 赞 0 分享

static全局变量与普通的全局变量的区别详细解析

以下是对static全局变量与普通的全局变量的区别进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助
收藏 0 赞 0 分享

C++ explicit关键字的应用方法详细讲解

C++ explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢?下面就让我们一起来看看这方面的知识吧
收藏 0 赞 0 分享

教你5分钟轻松搞定内存字节对齐

随便google一下,人家就可以跟你解释的,一大堆的道理,我们没怎么多时间,讨论为何要对齐.直入主题,怎么判断内存对齐规则,sizeof的结果怎么来的,请牢记以下3条原则
收藏 0 赞 0 分享
查看更多