如何配置代码¶
我找到的以前写的一个版本的代码不能检测图中所有的人脸,如果图中只有一张人脸那么可以检测出来,但是有多张人脸就会在最后合并所有人脸的时候出问题@@,那个完整版本的在做毕设用的笔记本电脑里面,现在已经坏了扔掉了=。=
用的是opencv2.43,现在已经更新到了3.0,可以从opencv的官网上下载,链接是opencv
由于是用C语言写的,当时用的是vs2010,用2012、2013等版本也是类似的。接下来是怎么配置opencv的库
配置opencv¶
如果你是用从官网下载下来的Windows版的opencv3.0.0的话,你下到的是一个.exe的文件,双击它就会解压到一个opencv的文件夹里面。
我按照步骤做了一遍如下:
第一步配置环境变量
打开控制面板中的系统和安全->系统,打开高级系统设置中的环境变量,如下图所示
新建一个名叫OPENCV的环境变量,设置变量值为"%opencv%build",%opencv%是之前你解压到的目录,我的是C:\opencv\build,如下图所示
点开环境变量path(没有的话你自己新建一个),添加变量值为"%opencv%build\x86\vc12\bin",记住如果一个变量值里有多条路径,为了区分各个路径是要加分号的,但是在最后一条路径后面不要加分号,如下图所示:
至此环境变量设置完毕。
第二步你需要配置目录。
在vs2010中新建一个项目,在“项目”菜单下打开属性,点开“配置属性”中的“VC++目录”,其中有包含目录,引用目录等等。先处理包含目录
点开包含目录,添加目录"%opencv%build\include""%opencv%build\include\opencv""%opencv%build\include\opencv2",这里%opencv%仍然用你之前解压到的目录替换,比如我的是C:\opencv\build\include,如下图所示
然后点开库目录,添加目录"%opencv%build\x86\vc12\lib"和目录"%opencv%build\x86\vc12\staticlib",如下图所示
第三部配置依赖项。
仍然是在项目属性中,点开“链接器”,点击“输入”,就可以看到“附加依赖项”,打开编辑它,把下面的内容直接copy过去再保存。这里我配置的是debug的版本,所以这些dll的文件名中都有一个"d",比如
opencv_ts300d.lib,如果你要配置release版本的,可以把这些"d"都去掉
把下面的复制粘贴过去:
opencv_ts300d.lib
opencv_world300d.lib
IlmImfd.lib
libjasperd.lib
libjpegd.lib
libpngd.lib
libtiffd.lib
libwebpd.lib
opencv_calib3d300d.lib
opencv_core300d.lib
opencv_features2d300d.lib
opencv_flann300d.lib
opencv_highgui300d.lib
opencv_imgcodecs300d.lib
opencv_imgproc300d.lib
opencv_ml300d.lib
opencv_objdetect300d.lib
opencv_photo300d.lib
opencv_shape300d.lib
opencv_stitching300d.lib
opencv_superres300d.lib
opencv_video300d.lib
opencv_videoio300d.lib
opencv_videostab300d.lib
zlibd.lib
如下图所示:
然后点击确定即可
到此opencv的部分已经配置完了
配置代码¶
你拿到的我的文件夹包含三个子文件夹,\cascade是放了级联分类器,\code里面是头文件和源文件,src_img是待检测图片
\cascade中的内容直接复制粘贴到你的工程目录下面,头文件和源文件和待检测图片你也可以这么做,然后在你工程中的头文件和源文件中添加现有项把这些文件加到工程中就可以了
接下来就可以运行代码了,如果运行出了关于MFC的问题,再打开你的项目属性,打开“常规(General)”,你可以看到Use of MFC那一栏里面是Use Standard Windows Libraries,点击下拉菜单
改成Use MFC in a shared DLL即可,如下图所示: