一、先上代码
复制代码
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
29
30
31
32
33
34
35
36
37
38
39import cv2 #pip install opencv-python import matplotlib.pyplot as plt #pip install matplotlib data=cv2.VideoCapture(r'./video/1.mp4') #获取视频路径 j = 1 #第j张图片 face_cascade=cv2.CascadeClassifier('./xmlfile/haarcascade_frontalface_default.xml')#要提取opencv中一个xml文件 #提取人脸图片函数 def search_face(img): global j gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #转为灰度图片,这样才能提取人脸 faces=face_cascade.detectMultiScale(gray,1.3,5) #找人脸 if faces==(): #如果某一帧找不到人脸,则返回0 return 0 else: for (x,y,w,h) in faces: try: img=img[y-20:y+h+20:,x-20:x+w+20:,:] #人脸的宽度长度 cv2.imwrite(r'.imgs%d.jpg' % j, img) #写入本地 print("第%d张人脸图片"%j) j = j + 1 except: pass ret, frame = data.read() #读取video i=0 #如果ret不为空,即能在某一帧中提取人脸图片 while ret: ret, frame = data.read() if ret==True: i=i+1 if i%20==0: search_face(frame) # 展示图片 # cv2.imshow('frame', frame) # if cv2.waitKey(5) & 0xFF == ord('q'): # break data.release() #释放内存 cv2.destroyAllWindows()
二、目录结构
haar…xml文件来源如下:
找到python的下载的库文件夹(一般都在“python版本”/Lib/site-packages中)再找到cv2,cv2下面会有几个文件夹,haar…xml文件不一定再data文件夹之中,可以在cv2下面的文件夹点开来找找。
三、运行结果
因隐私问题,具体的人脸图片就不展现出来了。
最后
以上就是霸气烤鸡最近收集整理的关于使用opencv实现视频中人脸图片的提取的全部内容,更多相关使用opencv实现视频中人脸图片内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复