热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

图像识别_图像识别入门VS2017+Opencv的安装

本文由编程笔记#小编为大家整理,主要介绍了图像识别入门VS2017+Opencv的安装相关的知识,希望对你有一定的参考价值。
本文由编程笔记#小编为大家整理,主要介绍了图像识别入门 VS2017+Opencv的安装相关的知识,希望对你有一定的参考价值。


今早老师给我了个任务很急,把图像处理成word,我一看不多,就觉得自己打就好了,但是没想到TIM图片自带了文字识别,这就省了很多的时间,给大家看看效果。

图像识别入门 VS2017+Opencv的安装

不得不感慨图像识别的强大,但是这又是怎么个过程呢,能不能做个图像识别让机器可以识别我的脸呢?经查找,现在电脑图像处理算法的实现工具主要是Matlab和Opencv。

计算机视觉市场巨大而且持续增长,且这方面没有标准API,如今的计算机视觉软件大概有以下三种:

1、研究代码(慢,不稳定,独立并与其他库不兼容)

2、耗费很高的商业化工具(比如Halcon, MATLAB+Simulink

3、依赖硬件的一些特别的解决方案(比如视频监控,制造控制系统,医疗设备)这是如今的现状,而标准的API将简化计算机视觉程序和解决方案的开发,OpenCV致力于成为这样的标准API

OpenCV致力于真实世界的实时应用,通过优化的C代码的编写对其执行速度带来了可观的提升,并且可以通过购买IntelIPP高性能多媒体函数库(Integrated Performance Primitives)得到更快的处理速度。下图为OpenCV与当前其他主流视觉函数库的性能比较。

图像识别入门 VS2017+Opencv的安装


Visual Studio 2017 可支持 C#、C++、Python、Visual Basic、Node.js、htmlJavascript 等各大编程语言,不仅可编写 Windows 10 UWP 通用程序,甚至还能开发 iosandroid 移动平台应用,被称“宇宙最强”的集成开发环境 IDEVisual Studio 2017 作为业界 IDE 的领头羊,无论是学习还是工作,只要你对开发对编程感兴趣,都值得下载尝鲜研究。而且免费的 VS2017 社区版也适合大多数情况,微软还是很厚道的。

强大的开发环境+一个开源的图像检测、识别和图形处理库,可以完成非常丰富的机器视觉的功能。

如何下载OpenCV安装程序,如何在VS2017下安装配置OpenCV

首先OpenCV下载可以到http://www.opencv.org.cn/index.php/Download,然后选一个较新版本下载,我下的是V3.4.1版本。

VS2017的下载可以到微软官网上https://visualstudio.microsoft.com/zh-hans/下载vs_community

VS2017下载好接下来安装,遇到的第一个问题是工作负载和安装位置,尽量不要把全部东西都放到C盘因为vs很大。

图像识别入门 VS2017+Opencv的安装

接下来就耐心等着吧。

 

图像识别入门 VS2017+Opencv的安装

然后重启电脑,第一次可能会时间长点,安装完成。

 

图像识别入门 VS2017+Opencv的安装

再接下来是OpenCV,选则你的安装目录安装,运行。


在我的电脑中配置OpenCV

“我的电脑”右击弹出“系统属性”对话框,选择“高级”再点击“环境变量”,然后再编辑path,在“编辑用户变量”对话框的变量值输入以下三条,注意用“;”来分开。环境变量配置:我的电脑右键单击->属性->系统高级设置->高级->环境变量

D:opencvuildx64vc14in;

D:opencvuildx64vc15in;


然后在VS2017中加入OpenCV

新建vc++空项目,工程中右击–>属性 

包含目录 + 库目录 + 链接器

1. 包含目录 配置:

VC++目录—>包含目录:

D:opencvuildinclude

D:opencvuildincludeopencv

D:opencvuildincludeopencv2

2. 库目录 配置:

VC++目录—>库目录:

D:opencvuildx64vc15lib

注意:(1)此处的x64表示电脑是64位,32位选择x86

2vc10表示VS2010vc11对应VS2012vc12对应VS2013vc14对应VS2015 ,vc15对应VS2017

3. 链接器 配置:

链接器>输入–>附加依赖项

opencv_world341.lib

opencv_world341d.lib

备注:

工程建好,你还要添加源.Cpp才能运行。

这里是我从网上得的测试程序:

//显示图像文件

#include 

using namespace std;

//using namespace std 的意思是:“使用命名空间std”.C++标准库中的类和函数是在命名空间std中声明的,因此程序如果需要用到C++标准库,就需要用“using namespace std”作声明,表示要用到命名空间std中的内容。

#pragma comment(linker, "/subsystem:"windows" /entry:"mainCRTStartup"") 

//这句话的解释https://blog.csdn.net/birdflyto206/article/details/51278468

int main()

{

const char *pstrImageName = "D:/abc/1.jpg";

const char *pstrWindowsTitle = "OpenCV first";

//从文件中读取图像

IplImage *pImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED);

//创建窗口

cvNamedWindow(pstrWindowsTitle, CV_WINDOW_AUTOSIZE);

//在指定窗口中显示图像

cvShowImage(pstrWindowsTitle, pImage); 

//等待按键事件

cvWaitKey();

cvDestroyWindow(pstrWindowsTitle);

cvReleaseImage(&pImage);

return 0;

}

主要函数说明:

1.创建窗口 cvNamedWindow

函数名称:cvNamedWindow

函数功能:创建窗口

函数原型:

int cvNamedWindow( const char* name, int flags=CV_WINDOW_AUTOSIZE );

参数说明:

第一个参数表示窗口的名字,它被用来区分不同的窗口,并被显示为窗口标题。被创建的窗口可以通过它们的名字被引用。

第二个参数表示窗口属性标志。目前唯一支持的标志是CV_WINDOW_AUTOSIZE。当这个标志被设置后,用户不能手动改变窗口大小,窗口大小会自动调整以适合被显示图像。

函数cvNamedWindow创建一个可以放置图像和trackbar的窗口。

注意:

如果已经存在这个名字的窗口,这个函数将不做任何事情。

2.在指定窗口中显示图像 cvShowImage

函数名称:cvShowImage

函数功能:在指定窗口中显示图像

函数原型:

void cvShowImage( const char* name, const CvArr* image );

参数说明:

第一个参数:窗口的名字。

第二个参数:被显示的图像。

3.等待按键事件 cvWaitKey

函数名称:cvWaitKey

函数功能:等待按键事件

函数原型:

int cvWaitKey( int delay=0 );

参数说明:

第一个参数:延迟的毫秒数,当delay<=0时表示无限等待。

函数返回值:

如果超过指定时间则返回-1,否则返回被按键的值。

运行结果:

 

 



推荐阅读
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • VSCode快速查看函数定义和代码追踪方法详解
    本文详细介绍了在VSCode中快速查看函数定义和代码追踪的方法,包括跳转到定义位置的三种方式和返回跳转前的位置的快捷键。同时,还介绍了代码追踪插件的使用以及对符号跳转的不足之处。文章指出,直接跳转到定义和实现的位置对于程序员来说非常重要,但需要语言本身的支持。以TypeScript为例,按下F12即可跳转到函数的定义处。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • Introduction(简介)Forbeingapowerfulobject-orientedprogramminglanguage,Cisuseda ... [详细]
author-avatar
昔日重来r_510
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有