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

Posted 神马学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像识别入门 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 <opencv2/opencv.hpp>

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,否则返回被按键的值。

运行结果:

 

 


以上是关于图像识别入门 VS2017+Opencv的安装的主要内容,如果未能解决你的问题,请参考以下文章

C/C++ vs2017 OpenCV简单入门

openCV安装配置及图像腐蚀实验(VS2017)

OpenCV入门指南第二篇 缩放图像

pencv_contrib里的Text(自然场景图像中的文本检测与识别)

图像识别——《OpenCV3编程入门》毛星云编著

Opencv 配置VS2012