今天有博友咨询关于之前写的opencv实现人脸识别文章中的个别事宜,由于先前的环境已经凌乱了,又重新配了一下,现总结一下出现的问题,希望能够帮到大家。
原文见我的置顶博客:https://blog.csdn.net/beyond9305/article/details/93724948,后来又改进了一番:https://blog.csdn.net/beyond9305/article/details/94312932
1.我现在用的ide主要有pycharm和spyder,二者随时切换,其实用的都是anaconda自带的python,这样方便管理。对于cv2导入错误,可以直接在命令窗口安装,对于spyder来说就是打开Anaconda Prompt,进入自己的设置的虚拟环境,然后运行:
pip install opencv-python
就能顺利安装了。
2.对于error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale',我们首先要下载对应的haarcascade_frontalface_default.xml文件,链接为:https://github.com/opencv/opencv/blob/master/data/haarcascades/haarcascade_frontalface_default.xml
右键“Raw”选择“目标另存为”即可,此时下载的是.txt , 直接改成.xml就可以了。还需要注意的就是存放路径,最好写成绝对路径,这样避免出错,当然像我这样写也行:
face_cascade = cv2.CascadeClassifier('./haarcascade_frontalface_default.xml')
3.最后是error:module 'cv2.cv2' has no attribute 'face',一般这种错误都是存在旧版本方法,需要更新一下,但这次属于安装不完整,有相关依赖没有安装,看一下现存的opencv系列:
果然少东西,于是查了些资料,发现缺少opencv-contrib-python,直接下载:
太慢了,转手动下载,给大家推荐一个宝藏:https://www.lfd.uci.edu/~gohlke/pythonlibs/,只要你想到的他都有,找到对应的opencv版本,下载到本地,然后直接从本地安装(即将上图中的opencv-contrib-python改成【你的下载包存放路径】),结果提示已存在该模块,于是卸载opencv-python,重新从本地开始安装,成功,但还是提示无“face”属性,使用“conda list”查看发现还是没有opencv-contrib-python,于是猜测改.whl文件也是不完整的,最后再次尝试单独安装,这时网速飞快,不到一分钟就ok了,很神奇:
注意opencv-python和opencv-contrib-python的版本要对应,下载的时候也可以直接指定版本。
再次查看,发现opencv-contrib-python已经有了:
对了,在此过程中还出现了:[WinError 5] 拒绝访问。: 'd:\\anaconda\\envs\\tensorflow\\lib\\site-packages,根据后边的提示加如--user权限即能正常访问,即pip install --user xxxx
对于此类问题最直接的方法就是去github上查看一下源码,在讨论区基本上都能找到答案,比如这次的问题:
—如果文章对您有一点点帮助,还请打赏一二,您的鼓励是我前进的不竭动力—
刚创建了一个公众号,一开始的文章是和csdn博客同步的,后续会着重来做这一块,比如发布第一手信息,抽个奖啥的,希望各位小伙伴支持一下,加个关注,如果能帮忙宣传一下就更完美了,爱你们,还是那句话,让我们一起努力,共同进步~
公众号为“非著名IT表演艺术家”,比较中二的名字,就是灵光一闪,然后这个名字就冒出来了……
大家也可以扫码关注,拜托了:
转载:https://blog.csdn.net/u014483914/article/details/103563148