- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章python利用OpenCV2实现人脸检测由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
最近,带领我的学生进行一个URTP项目设计,需要进行人脸识别。由于现在的OpenCV已经到了2.X版本,因此就不想用原来的1.X版本的代码,而网上存在的代码都是1.X版本的代码,尝试自己写一段2.X版本的代码,反复查阅资料,今天终于测试成功(很明显2.X版本的代码要比1.X的代码更简单),供大家好参考,代码如下:(2017年5月12日在python3.6.1下做一简单的修改) 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import
cv2
import
numpy as np
cv2.namedWindow(
"test"
)
#命名一个窗口
cap
=
cv2.VideoCapture(
1
)
#打开1号摄像头
success, frame
=
cap.read()
#读取一桢图像,前一个返回值是是否成功,后一个返回值是图像本身
color
=
(
0
,
0
,
0
)
#设置人脸框的颜色
classfier
=
cv2.CascadeClassifier(
"haarcascade_frontalface_alt.xml"
)
#定义分类器
while
success:
success, frame
=
cap.read()
size
=
frame.shape[:
2
]
#获得当前桢彩色图像的大小
image
=
np.zeros(size,dtype
=
np.float16)
#定义一个与当前桢图像大小相同的的灰度图像矩阵
image
=
cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
#将当前桢图像转换成灰度图像(这里有修改)
cv2.equalizeHist(image, image)
#灰度图像进行直方图等距化
#如下三行是设定最小图像的大小
divisor
=
8
h, w
=
size
minSize
=
(
int
(w
/
divisor),
int
(h
/
divisor))
#这里加了一个取整函数
faceRects
=
classfier.detectMultiScale(image,
1.2
,
2
, cv2.CASCADE_SCALE_IMAGE,minSize)
#人脸检测
if
len
(faceRects)>
0
:
#如果人脸数组长度大于0
for
faceRect
in
faceRects:
#对每一个人脸画矩形框
x, y, w, h
=
faceRect
cv2.rectangle(frame, (x, y), (x
+
w, y
+
h), color)
cv2.imshow(
"test"
, frame)
#显示图像
key
=
cv2.waitKey(
10
)
c
=
chr
(key &
255
)
if
c
in
[
'q'
,
'Q'
,
chr
(
27
)]:
break
cv2.destroyWindow(
"test"
)
|
效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:http://blog.sina.com.cn/s/blog_5562b0440102uw7g.html 。
最后此篇关于python利用OpenCV2实现人脸检测的文章就讲到这里了,如果你想了解更多关于python利用OpenCV2实现人脸检测的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在寻找一种用C# 编写的人脸、情感和语音识别方法。对于人脸识别,我早期使用的是 Emgu CV,它不准确,而且在弱光条件下性能非常低。我还需要找到用户的情绪。不管是悲伤还是快乐。但我发现使用 Em
我正在尝试使用 Apple 的 ARKit 3.0(Reality Kit)设置面部 anchor 但失败了。1. 以前只支持前置摄像头。现在还是这样吗?2.如何让Reality Kit的ARView
当我调试人脸 API 时抛出以下错误。 UnknownHostException@830035410936}“java.net.UnknownHostException:无法解析主机“api.proj
用例如下 我们的系统中有面孔列表 用户将上传一张图片 我们希望显示与上传图像匹配的面孔列表,例如置信度 >0.8 现在查看how to ,我的理解如下 使用人脸检测API,我们需要首先上传所有图像,包
用例如下 我们的系统中有面孔列表 用户将上传一张图片 我们希望显示与上传图像匹配的面孔列表,例如置信度 >0.8 现在查看how to ,我的理解如下 使用人脸检测API,我们需要首先上传所有图像,包
我正在寻找一种完美的方法来平滑二进制图像的边缘。问题是二值图像似乎是一个阶梯状的边界,这对我进一步的掩蔽过程来说非常不愉快。 我附加了一个原始二进制图像,该图像将被转换为平滑边缘,并且我还提供了预期的
我需要一个 java 库来确定哪个图像是“人体”;这是一张“人脸”;这是一个“动物”;这是一个“风景”等等。 有这样的东西吗? 谢谢 最佳答案 我不认为那里有什么方便的东西。特别是因为你在这里有非常广
自从过去 2 天以来,我一直在努力弄清楚出了什么问题?我正在使用 Microsoft 认知服务开发用于人脸识别的 Cordova android 应用程序。为了拍摄图像,我使用了 Cordova Ca
我是一名优秀的程序员,十分优秀!