OpenCV 学习笔记 05 人脸检测和识别 AttributeError: module 'cv2' has no attribute 'face'
1 环境设置:
win10
python 3.6.8
opencv 4.0.1
2 尝试的方法
在学习人脸识别中,遇到了没有 cv2 中没有 face 属性。在网上找了几个方法,均没有成功解决掉该问题。
2.1 方法一
来源:module 'cv2.cv2' has no attribute 'face'
pip install opencv-contrib-python
重启sublime,在运行后依旧报错。
当然了,这个不成功可能是由于opencv 与 contrib 版本不匹配造成的。
2.2 方法二
来源:OpenCV3-Python人脸识别方法—人脸识别与标记
方法:
将
model = cv2.face.createEigenFaceRecognizer()
改为
model = cv2.face_EigenFaceRecognizer.create()
依据报错,只是这次是不存在 face_EigenFaceRecognizer 属性。
当然了,以上两个均无法解决错误可能是版本问题。
3 解决方案
3.1、寻根问祖——官网
首先查看 opencv 官网 https://docs.opencv.org/4.0.1/
OpenCV modules 赫然而现
既然是 opencv 的 modules 出现问题,就直接看 modules 好了

注意:不要点击菜单栏中的 Modules ,直接看本页内容 OK 了;主要是点击后看到的内容比较混乱,反而没有对 “ 打开神奇的大门 ” 没有太大的帮助。
不难发现,我们在 opencv 的基础款 (Main modules)中确实没有发现 face 类;当我们继续查看附加款(Extra modules)时,竟然发现了 face ;任督二脉就此打通。

真的是机缘巧合,打开菜单栏中的 modules 时会发现,穷列了所有的 modules (Here is a list of all modules:),多达 4 页,幸运的是在第一页出现了 Face Analysis,点开后是对face 类的详细讲解 【Face Analysis】,不过此时已经很难看到庐山真面了。
3.2 解决方案
以前在安装库的时候,记得有的库文件中带有 contrib ,而基本都没安装过,contrib 应该就和 extra modules 有关 !
打开 python 扩展包网站 https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv,
找到对应版本 opencv_python-4.0.1+contrib-cp36-cp36m-win_amd64.whl ,下载 - 安装。
搞定!
安装前先卸载了 opencv-python
安装后的版本为
opencv-python 4.0.1+contrib
4 参考
官网 https://docs.opencv.org/4.0.1/index.html
Face Analysis 官网 https://docs.opencv.org/4.0.1/db/d7c/group__face.html
如何編譯opencv3.0(含extra modules) 这个讲的比较好,有一定启发性。
https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv python 第三方库文件
module 'cv2.cv2' has no attribute 'face' 这个案例不成功可能是opencv 与extent modules不匹配造成的。
OpenCV3-Python人脸识别方法—人脸识别与标记 文档中讲述了原因可能是新版本变化使得书中的代码形式改变,作者应该也费了一番功夫。
OpenCV 学习笔记 05 人脸检测和识别 AttributeError: module 'cv2' has no attribute 'face'的更多相关文章
- OpenCV 学习笔记 05 人脸检测和识别
本节将介绍 Haar 级联分类器,通过对比分析相邻图像区域来判断给定图像或子图像与已知对象是否匹配. 本章将考虑如何将多个 Haar 级联分类器构成一个层次结构,即一个分类器能识别整体区域(如人脸) ...
- OpenCV 学习笔记 07 目标检测与识别
目标检测与识别是计算机视觉中最常见的挑战之一.属于高级主题. 本章节将扩展目标检测的概念,首先探讨人脸识别技术,然后将该技术应用到显示生活中的各种目标检测. 1 目标检测与识别技术 为了与OpenCV ...
- OpenCV 学习笔记 05 级联分类器CascadeClassifier类
在人脸检测中,CascadeClassifier 是一个类,该类的作用是(基于官方已经训练好的数据文件 .xml)实例化一个检测器. 1 类 CascadeClassifier 的概述 首先看一下该类 ...
- OpenCV学习代码记录——人脸检测
很久之前学习过一段时间的OpenCV,当时没有做什么笔记,但是代码都还在,这里把它贴出来做个记录. 代码放在码云上,地址在这里https://gitee.com/solym/OpenCVTest/tr ...
- opencv学习笔记霍夫变换——直线检测
参考大佬博文:blog.csdn.net/jia20003/article/details/7724530 lps-683.iteye.com/blog/2254368 openCV里有两个函数(比较 ...
- OpenCV 学习笔记03 boundingRect、minAreaRect、minEnclosingCircle、boxPoints、int0、circle、rectangle函数的用法
函数中的代码是部分代码,详细代码在最后 1 cv2.boundingRect 作用:矩形边框(boundingRect),用于计算图像一系列点的外部矩形边界. cv2.boundingRect(arr ...
- 基于OpenCv的人脸检测、识别系统学习制作笔记之三
1.在windows下编写人脸检测.识别系统.目前已完成:可利用摄像头提取图像,并将人脸检测出来,未进行识别. 2.在linux下进行编译在windows环境下已经能运行的代码. 为此进行了linux ...
- 基于OpenCV读取摄像头进行人脸检测和人脸识别
前段时间使用OpenCV的库函数实现了人脸检测和人脸识别,笔者的实验环境为VS2010+OpenCV2.4.4,opencv的环境配置网上有很多,不再赘述.检测的代码网上很多,记不清楚从哪儿copy的 ...
- OpenCV 学习笔记 02 使用opencv处理图像
1 不同色彩空间的转换 opencv 中有数百种关于不同色彩空间的转换方法,但常用的有三种色彩空间:灰度.BRG.HSV(Hue-Saturation-Value) 灰度 - 灰度色彩空间是通过去除彩 ...
随机推荐
- (第1篇)什么是hadoop大数据?我又为什么要写这篇文章?
摘要: hadoop是什么?hadoop是如何发展起来的?怎样才能正确安装hadoop环境? 这些天,有很多人咨询我大数据相关的一些信息,觉得大数据再未来会是一个朝阳行业,希望能尽早学会.入行,借这个 ...
- Python 缓冲区
转自:https://blog.csdn.net/pro_leo/article/details/41786397(有修订) 1.Python缓存作用: a.提高执行效率. b.减少内存负担. 2.首 ...
- 求链表的倒数第m个元素
法一: 首先遍历一遍单链表,求出整个单链表的长度n,然后将倒数第m个,转换为正数第n-m+1个,接下去遍历一次就可以得到结果. 不过这种方法需要对链表进行两次遍历,第一次遍历用于求解单链表的长度,第二 ...
- coalesce :返回参数(列名)中第一个非NULL值的字段值
示例 下面的语句返回值 34.(只返回一个值就算后面不为NULL也直接丢弃) SELECT COALESCE( NULL, 34, 13, 0 ) 备注 如果所有参数均为 NULL,则 COALESC ...
- Linux学习之常用文件处理命令(一)
(一)文件命名规则 (二)常用文件处理命令 1.ls命令 2.cd命令 3.pwd命令 4.mkdir命令 5.touch命令 6.cp命令 7.mv命令 8.rm命令 9.cat命令 10.more ...
- 查找最大或最小的 N 个元素
使用内置的heapd模块 In [1]: import heapq In [2]: nums = [1,8, 2, 23, 7, -4, 18, 23, 42, 37, 2] In [3]: prin ...
- PlantUML windows android
dot执行程序. 渲染 url 连接(花费大量时间) 错误 和 语法注释 (是还在实验的) 缓存大小 5 在键入和渲染之间的延迟 (毫秒) 100
- BZOJ.3693.圆桌会议(Hall定理 线段树)
题目链接 先考虑链.题目相当于求是否存在完备匹配.那么由Hall定理,对于任意一个区间[L,R],都要满足[li,ri]完全在[L,R]中的ai之和sum小于等于总位置数,即R-L+1.(其实用不到H ...
- __NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0xb000000000000003
出现这个报错的原因是:拿数字与字符串进行对比了. 检查两边的数据格式是否一致 如果不一致,可以使用[nsstring stringwithformate:@"%d",xx]包装一下 ...
- Hive总结(八)Hive数据导出三种方式
今天我们再谈谈Hive中的三种不同的数据导出方式. 依据导出的地方不一样,将这些方式分为三种: (1).导出到本地文件系统. (2).导出到HDFS中: (3).导出到Hive的还有一个表中. 为了避 ...