这是一个问题记录的帖子,并没有正面解决掉我的问题。调了好久之后没解决掉,问师兄发现这个模块没有用到。就给删掉了。
下面记录一下这个问题的常规解决办法。
一:首先是opencv的版本是否合适
项目的版本低的话最好不要用高版本的OpenCV,最好是用当时开发的版本。
二:然后是OpenCV的include路径配置
- 视图 ==》其他窗口 ==》属性管理器,点击打开
- 然后选择通用属性下的VC++目录,右边会有包含目录和库目录,点击包含目录,添加以下三条路径,也就是OpenCV相关解压文件所在的目录
D:\opencv3.1\build\include
D:\opencv3.1\build\include\opencv2
D:\opencv3.1\build\include\opencv
这三条路径要依据自己解压OpenCV3.1的路径进行修改
- 库目录增加以下路径
D:\opencv3.1\build\x64\vc14\lib
5. 还是刚才的属性页面 点击链接器,选择输入,会在右侧看到附加依赖项,添加下面文件 opencv_world310d.lib(前缀都一样,都是opencv_world,表示全局依赖项;310表示不同的版本;d表示debug版本,没有d表示release版本,此处添加debug版本) ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190114231244604.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3F1bnF1bnN0eWxlOTk=,size_16,color_FFFFFF,t_70)
注:然后在修改上面的内容时,一定要注意把旧的路径全部删干净。要不然容易找不到文件。
三:这个文件是否在OpenCV的扩展包中
官网下载的OpenCV库包只包含了基础功能的库文件,绝大多数的基础功能开发就够用了。像人脸识别的功能,就在扩展包里面了。opencv_contrib。但是要注意的是最好是摘到别人编译出来的包用,我下载了官方github上的库,是类似demo的文件,从里面抠出来的face包,但是并没有解决问题。嘿嘿嘿,最后直接删了完事。
我的分析过程
没有正面解决这个问题,只是记录一下我的分析过程。
配置好opencv3.4.0,新建项目可以打开图片,说明配置成功
导入原有项目,报错如下
老项目的opencv的版本是3.1.0,怀疑是版本的问题,按一下老版本的OpenCV试一下。
好吧,不是版本的问题,找了OpenCV2路径下所有的函数文件,发现没有face文件,是不是并没有人脸检测的内容,需要导进去啊?
face是在OpenCV的扩展包里,这个需要去下载,需要注意的是不要下载项目形式的扩展包,最好是下载别人重编译好的包。(我没有再去找合适的包,这一点大家去别的地方再看看吧。)
然后实在是想不明白,问了问师兄,说这个模块的功能其实没有用上,可以删掉。。。。。我这吭吭哧哧捣鼓了半天,师兄三把两把搞好了,还是说,有时候不能闭门造车,该问的时候,还是要问的。C++初上手,果然和java是有很大的区别。
嘿嘿嘿,纯属记录贴,没有帮上忙的话勿怪啊。