这部分是关于检测摄像头中的人脸,以及对mp4中的文件人脸检测,上代码:
#导入cv模块
import cv2 as cv
#检测函数
def face_detect_demo(img):
gary = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
face_detect = cv.CascadeClassifier('E:/Python/Lib/site-packages/cv2/data/haarcascade_frontalface_default.xml')
face = face_detect.detectMultiScale(gary)
for x,y,w,h in face:
cv.rectangle(img,(x,y),(x+w,y+h),color=(0,0,255),thickness=2)
cv.imshow('result',img)
#读取摄像头
#cap = cv.VideoCapture(0) #0表示本机默认摄像头 ,其他表示外来摄像头
cap = cv.VideoCapture('1.mp4')#表示当前目录下的视频文件,可以快速检测
#循环
while True:
flag,frame = cap.read()#read 返回两个参数,self表示它本身是否有值True或者false,img就是表示当前真的图像
if not flag:
break
face_detect_demo(frame)#识别
if ord('q') == cv.waitKey(1):#按q可以关闭摄像头
break
#释放内存
cv.destroyAllWindows()
#释放摄像头
cap.release()
在播放MP4文件下可能出现视频无法播放的问题。
解决办法:
开始-输入cmd
输入python,如图:
接着输入import cv2,如图:
附加:cv2.__version__查看安装的opencv版本号,有可能opencv_videoio_ffmpeg455_64.dll文件的命名格式不规范,需要手动加上版本号455和64位,33位后缀就加_32
最后输入print(cv2.__path__),如图:
找到opencvde 安装地址
在地址中复制opencv_videoio_ffmpeg455_64.dll文件到项目下就能解决问题。