我是靠谱客的博主 霸气烤鸡,最近开发中收集的这篇文章主要介绍使用opencv实现视频中人脸图片的提取,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、先上代码

import 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实现视频中人脸图片的提取所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部