C++开发人脸性别识别教程(2)——VisualStudio初探

  上一篇教程中已经大致描述了项目的最终效果,考虑到读者中有很多零基础的同学,我们这里并不急于进行代码的编写,而是先简要介绍下所用到的开发工具——VisualStudio2012。

  VisualStudio是微软推出的非常强大的开发软件,在C++开发领域可谓占据了半壁江山。VisualStudio经典版本主要有2005、2008、2010、2012、2013、2015等版本。2005和2008现在已经稍显过时,现在应用已经不太广泛。目前2010、2012、2013是目前较为流行的版本,免费版本也相对容易找到。2015是最新发布的版本,文件较大(大约5个G),对硬件要求相对苛刻一点,并且不容易找到免费版本。这里推荐使用VS2012版本,原因有两个:一是VS2012版本还不算过时,而且界面相比08、10版本更为友好;二是VS2012支持一个重要的OpenCv插件:ImageWatch。

  一、启动VS2012

  这里假设已经安装了VS2012并破解完成,相关的安装教程网上有很多资源,大家如果有疑问的话可以在下方留言,有必要的话我会上传相关的安装文件以及破解方法。

双击快捷方式(开始菜单栏、桌面快捷方式、任务栏中的快速启动图标均可),首次启动会提示选择编程语言种类,这里选择C++即可(可能需要几分钟的初始化时间)。

  接下来进入开始界面:

  二、基本设置

  1、主题设置

  首先,VS2012默认提供两种主题,深色和浅色。通过“工具—>选项”主菜单命令打开设置对话框,展开“环境”节点,在“常规”设置界面中进行设置:

  2、窗口布局

  观察当前VS所显示的窗口布局,推荐大家将VS的界面调整为这种格式,方便编写程序。

  首先在窗口的右侧显示三个编辑窗口,分别为解决方案资源管理器、类视图、资源视图:

  这三个窗口将以三种模式来显示当前的工程结构,这里我们打开工程文件,对这三个窗口进行详细介绍。Ctrl+O,弹出打开工程对话框,选择对应的project文件:

  在解决方案管理器窗口中,将以头文件和源文件的形式显示工程目录:

  在类视图窗口中,将显示当前程序工程中的所有类结构:

  在资源视图窗口中,显示当前工程所用到的所有资源,包括图片、对话框、字符串表等:

  一般在创建、添加文件时使用解决方案资源管理器;在编写代码(尤其是大型的、面向对象的代码工程)使用类视图,方便定位相应的类以及成员函数;在资源视图中完成MFC界面设置以及相关资源的查找引用等。

  3、基本操作

  这里简单的介绍一些VS2012在编写代码过程中的常用操作,这里主要介绍快捷键,当然相应的功能也可以通过主菜单栏的菜单命令和快捷菜单命令来完成。

  (1)拼写提示

  VS一个非常让人舒服的功能就是在敲代码时提供了拼写提示的功能,这也是高级IDE必备的功能之一,在你输入代码的过程中,VS会自动根据你当前输入的情况给出提示信息:

  (2)编译链接

  按下F7,VS会对当前代码进行编译并链接相关库文件。

  (3)调试

  如果编译顺利通过,就可以进行调试。在调试之前需要先设置断点(当然不设置也可以)。VS设置断点的方法有三种:菜单、快捷键、鼠标单击左槽。这里推荐使用快捷键。将光标定位在指定行,按下F9设置断点:

  这里介绍一个取消所有断点的快捷键组合:ctrl+shift+F9。

  断点设置完成后,按下F5,程序开始调试,并在命中断点后暂时挂起。

  (4)运行

  调试通过后,按下ctrl+F5运行程序即可。

  三、注意事项

  1、MFC相关知识

  这个项目在开发过程中用到了大量的MFC编程,这在以后使用过程中在详细介绍,需要说的是MFC空间的操作都通过工具箱窗口进行,这里通过“视图—>工具箱”命令调出工具箱窗口,并将其置于窗口右侧即可:

  2、调试器的版本问题

  这里我的电脑是用的64位,而VS在调试是默认为win32:

  考虑到我们之后要配置的opencv是64位的,一些底层的编译环境(如g++等)也是64位的,因此这里建议换成64位的调试器:单击“Win32”右侧的下拉箭头,选择配置管理器:

  在弹出的窗口中,单击下拉箭头,选择新建:

  在弹出窗口中选择X64:

  注意左侧生成栏下面的对话框需要勾选。单击确定,关闭当前窗口。此时再次单击“Win32”右侧的下拉箭头,发现其中多了一个X64的选项,选中即可。

  四、总结

  这篇教程总结了VS2012的一些基本操作和注意事项,帮助之前零基础的朋友快速入门,更多有关VS2012的相关配置大家可以参考网上资源。在下一篇教程中我们将会简要介绍OpenCv在VS2012中的配置以及插件ImageWatch的使用。

时间: 2024-10-12 03:05:24

C++开发人脸性别识别教程(2)——VisualStudio初探的相关文章

C++开发人脸性别识别教程(13)——针对单张图片的性别识别

在之前的博文中我们的性别识别程序已经初步成型,能够识别某个文件夹下的图片文件.不过这里有一个问题,假设这个文件夹下有着大量的图片,而我们希望识别这些图片中的某一张,此时需要我们不停的单击“下一张”按钮才会轮询到对应的图片,这是相当麻烦的,因此在这篇博客中我们向程序中添加一个功能——单张图片的性别识别. 一.基本思想 最基本的办法就是在主界面再添加一个按钮控件,命名为“图片文件”(之前的按钮为“图片文件夹”),不过这样会使得界面上的按钮控件过于繁多,给人一种“作者只会用button控件”的感觉.这

C++开发人脸性别识别教程(18)——辅助功能之文件名批量修改、方法验证

时光推移了30多天,这个人脸性别识别的小项目也接近尾声了,预计再通过三篇博文的篇幅来完成这个项目的收尾工作.在这篇博文中我们再为程序添加另外两个小的辅助功能:文件名批量修改.方法验证. 一 文件名批量修改 批量修改文件名是一件很基础也很常用的小操作,核心操作就是图像文件的批量读取.批量改名.批量保存.基本思想就是把文件读出来,然后在保存回去(注意不要和别的文件发生覆盖),从这个角度来讲文件名批量修改与上一篇博客C++开发人脸性别识别教程(17)——辅助功能之人脸批量分割中的人脸批量分割简直如出一

C++开发人脸性别识别教程(12)——添加性别识别功能

经过之前几篇博客的讲解,我们已经成功搭建了MFC应用框架,并实现了基本的图像显示和人脸检测程序,在这篇博文中我们要向其中添加性别识别代码. 关于性别识别,之前已经专门拿出两篇博客的篇幅来进行讲解,这里不再赘述,具体参见:C++开发人脸性别识别教程(5)——通过FaceRecognizer类实现性别识别和C++开发人脸性别识别教程(6)——通过SVM实现性别识别. 一.分类器训练 在进行人脸性别识别之前需要训练性别识别的分类器,而分类器的训练过程是相对耗时的(大约五分钟),因此这里我们采用离线训练

(转)C++开发人脸性别识别教程(3)——OpenCv配置和ImageWatch插件介绍

原文地址:http://blog.csdn.net/u013088062/article/details/50435079 OpenCv是C++图像处理的重要工具,这个人脸性别识别的项目就是借助OpenCv进行开发的.虽然网上已经有了很多关于OpenCv的配置教程,但出于教程完整性考虑,这里还是用专门的一篇博客来介绍OpenCv的具体配置方法,同时也介绍一下OpenCv中的一个强有力的图像处理插件——ImageWatch. 由于这个程序是一年前写的,当时的OpenCv的最新版本为2.4.9(现在

C++开发人脸性别识别教程(3)——OpenCv配置和ImageWatch插件介绍

OpenCv是C++图像处理的重要工具.这个人脸性别识别的项目就是借助OpenCv进行开发的. 尽管网上已经有了非常多关于OpenCv的配置教程,但出于教程完整性考虑.这里还是用专门的一篇博客来介绍OpenCv的详细配置方法,同一时候也介绍一下OpenCv中的一个强有力的图像处理插件--ImageWatch. 因为这个程序是一年前写的.当时的OpenCv的最新版本号为2.4.9(如今已经更新到了3.0),而且2.4.9版本号和3.0版本号在配置方法上稍有不同,这里我仍以2.4.9版本号为例来介绍

C++开发人脸性别识别教程(16)——视频人脸性别识别

在之前的博文中我们已经能够顺利驱动摄像头来采集源图像,在这篇博文中将正式为其加入性别识别的代码,实现摄像头视频的人脸性别识别. 一.人脸检测 在得到摄像头采集的源图像之后,首先要做的就是对其进行人脸检测,将人脸区域分割出来.这步相对来说比较简单,只需在定时器时间触发函数中加入人脸检测的代码即可,这里给出OnTimer()函数的整体代码: void CGenderRecognitionMFCDlg::OnTimer(UINT_PTR nIDEvent) { /***********人脸检测并识别*

C++开发人脸性别识别教程(6)——通过SVM实现性别识别

上一篇教程中我们介绍了怎样使用OpenCv封装的FaceRecognizer类实现简单的人脸性别识别,这里我们为大家提供第二种主要的性别识别手段--支持向量机(SVM). 支持向量机在解决二分类问题方面有着强大的威力(当然也能够解决多分类问题).性别识别是典型的二分类模式识别问题,因此非常适合用SVM进行处理,同一时候OpenCv又对SVM进行了非常好的封装,调用非常方便,因此我们在这个性别识别程序中考虑增加SVM方法. 在这里我们採用了HOG+SVM的模式来进行,即先提取图像的HOG特征.然后

(转)C++开发人脸性别识别教程(6)——通过SVM实现性别识别

原文地址:http://blog.csdn.net/u013088062/article/details/50480518 上一篇教程中我们介绍了如何使用OpenCv封装的FaceRecognizer类实现简单的人脸性别识别,这里我们为大家提供另外一种基本的性别识别手段——支持向量机(SVM). 支持向量机在解决二分类问题方面有着强大的威力(当然也可以解决多分类问题),性别识别是典型的二分类模式识别问题,因此很适合用SVM进行处理,同时OpenCv又对SVM进行了很好的封装,调用非常方便,因此我

C++开发人脸性别识别教程(5)——通过FaceRecognizer类实现性别识别

在之前的博客中已经解决了人脸检测的问题,我们计划在这篇博客中介绍人脸识别.性别识别方面的相关实现方法. 其实性别识别和人脸识别本质上是相似的,因为这里只是一个简单的MFC开发,主要工作并不在算法研究上,因此我们直接将性别识别视为一种特殊的人脸识别模式.人脸识别可能需要分为几十甚至上百个类(因为有几十甚至上百个人),而性别识别则是一种特殊的人脸识别——只有两个类. 一.基本工具 通过OpenCv进行性别识别的基本工具是FaceRecognizer.这是OpenCv2.x版本中的一个基本的人脸识别类