OpenCv之视频人脸识别

news/2024/12/23 7:00:03/


一、人脸检测

案例代码如下:

import cv2
import numpy as npvideo =  cv2.VideoCapture('1.mp4')
face_detector = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
while True:retval,image = video.read() #     retval boolean类型表名是否获得了图片if not retval:print('视频读取完成,没有图片')breakfaces = face_detector.detectMultiScale(image)for x,y,w,h in faces:cv2.rectangle(image,pt1=(x,y),pt2 = (x+w,y+h),color=[0,0,255],thickness=2)cv2.imshow('video',image)key = cv2.waitKey(1)if key == ord('q'):breakcv2.waitKey(1)
video.release()

二、马赛克处理

视频帧率、宽度、高度、图片个数计算:

import cv2
import numpy as npvideo =  cv2.VideoCapture('1.mp4')
# 获得视频中的属性
fps = video.get(propId=cv2.CAP_PROP_FPS) #得到帧率
width = video.get(propId=cv2.CAP_PROP_FRAME_WIDTH) #宽度
height = video.get(propId=cv2.CAP_PROP_XI_HEIGHT) #高度
count = video.get(propId=cv2.CAP_PROP_FRAME_COUNT) #多少图片
print('--视频帧率',fps)
print(width,height,count)
face_detector = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
while True:retval,image = video.read() #     retval boolean类型表名是否获得了图片if not retval:print('视频读取完成,没有图片')breakfaces = face_detector.detectMultiScale(image)for x,y,w,h in faces:# cv2.rectangle(image,pt1=(x,y),pt2 = (x+w,y+h),color=[0,0,255],thickness=2)face = image[y:y+h,x:x+w]face = face[::10,::10]face = np.repeat(face,10,axis=0)face = np.repeat(face,10,axis =1)image[y:y+h,x:x+w] = face[:h,:w]cv2.imshow('video',image)key = cv2.waitKey(1)if key == ord('q'):breakcv2.waitKey(1)
video.release()

三、写视频

案例代码如下:

import cv2
import numpy as npvideo =  cv2.VideoCapture('1.mp4')
wr = cv2.VideoWriter(filename = 'gray.mp4',fourcc = cv2.VideoWriter.fourcc(*'MP4'),fps = 24, #视频帧率framesize = (640,360)) #图片尺寸
# 获得视频中的属性
fps = video.get(propId=cv2.CAP_PROP_FPS) #得到帧率
width = video.get(propId=cv2.CAP_PROP_FRAME_WIDTH) #宽度
height = video.get(propId=cv2.CAP_PROP_XI_HEIGHT) #高度
count = video.get(propId=cv2.CAP_PROP_FRAME_COUNT) #多少图片
print('--视频帧率',fps)
print(width,height,count)
face_detector = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
while True:retval,image = video.read() #     retval boolean类型表名是否获得了图片if not retval:print('视频读取完成,没有图片')breakimage = cv2.resize(image,(640,360))gray = cv2.cvtColor(image,code = cv2.COLOR_BGR2GRAY)np.repeat(gray.reshape(360,640,1),3,axis=2) #蓝绿红变为三维,但值是一样的# wr.write(gray)faces = face_detector.detectMultiScale(image)for x,y,w,h in faces:# cv2.rectangle(image,pt1=(x,y),pt2 = (x+w,y+h),color=[0,0,255],thickness=2)face = image[y:y+h,x:x+w]face = face[::10,::10]face = np.repeat(face,10,axis=0)face = np.repeat(face,10,axis =1)image[y:y+h,x:x+w] = face[:h,:w]wr.write(image) #彩色图片是三维的,而黑白图片是二维的cv2.imshow('video',image)key = cv2.waitKey(1)if key == ord('q'):breakcv2.waitKey(1)
video.release()
wr.release()

四、摄像头识别人脸

案例代码如下:

import cv2
import numpy as np# 打开本机摄像头
cap = cv2.VideoCapture(0)
face_detector = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')while True:flag,frame = cap.read() #flag是否读取了图片if not flag:break# 转为灰度图片gray = cv2.cvtColor(frame,code = cv2.COLOR_BGR2GRAY)faces = face_detector.detectMultiScale(gray,scaleFactor=1.1,minNeighbors=10)for x,y,w,h in faces:cv2.rectangle(frame,pt1=(x,y),pt2=(x+w,y+h),color=[0,0,255],thickness=2)cv2.imshow('face',frame)key = cv2.waitKey(1000//24)if key == ord('q'):breakcv2.destroyAllWindows()
cap.release()


http://www.ppmy.cn/news/973746.html

相关文章

arcgis-利用等高线数据生成dem栅格

1、打开cass,展高程点,绘制三角网,绘制等高线,删除三角网和高程点。如下: 2、得到的等高线图,如下: 3、保存文件为dwg格式,随后打开arcmap软件,打开dwg的线层数据&#x…

airtest-selenium 脚本爬取百度热搜标题

目录 1. 前言 2. 爬取标题的脚本 3. 命令行运行 Web 自动化脚本 1)python 环境准备 2)chrome 与 chromedriver 版本对应 3)命令行运行 1. 前言 airtest-selenium是一个基于Python的UI自动化测试框架,它结合了airtest和sele…

【数据结构】--八大排序算法【完整版】

匠心制作,后续有问题会加以修改的 ,全文均是自己写的,几张图有参考网络 ———————————————— 目录 一、直接插入排序 二、希尔排序(直接插入排序的改良版) 三、选择排序(直接选择排序) 四、堆排序 …

(黑客)自学笔记

特别声明: 此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施&#x…

各种各类镜像网站

这里给出了南京邮电大学的镜像开源软件镜像网站地址和国内其它大学和企业如阿里、腾讯、网易等的开源镜像地址。 南京邮电大学开源镜像网站地址:https://mirrors.njupt.edu.cn/清华大学开源软件镜像站地址:https://mirror.tuna.tsinghua.edu.cn/中国科大…

国内镜像网站汇总

转自:eclipse下载插件速度很慢解决方案 为了方便自己使用就转过来了 推荐使用:http://mirrors.ustc.edu.cn/ 一、站点版 (一)、企业站 1.搜狐:http://mirrors.sohu.com/ 2.网易:http://mirrors.163.com…

QT国内镜像网站

国内镜像网站 这里给大家推荐几个国内著名的 Qt 镜像网站,主要是各个高校的: 中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/北京理工大学:http://mirr…

国内开源的镜像网站(很全很详细)

请大家参考这位博主的原文链接,收集的很全很详细的镜像网站列表: 国内开源镜像站点汇总_Hundery的博客-CSDN博客_镜像站国内开源镜像站点汇总一、站点版二、软件版三、官方镜像列表状态地址四、几个官方cn子域解析五、镜像站搭建参考一、站点版&#xf…