python换人_Python实时人脸识别/替换_weixin_39595302的博客-程序员秘密

技术标签: python换人  

摄像头中的人脸检测,也是人脸识别的一部分, 摄像头播放的画面本质上是按帧将图片拼凑起来的, 有图片的话,获取图片的中人脸呢再上一篇中我们已经涉及了

想要进行人脸识别, 我们需要OpenCV, 还是先来说一下安装的问题

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simplepip install opencv-contrib-python -i https://pypi.tuna.tsinghua.edu.cn/simplepip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

1.资料的准备

1.1 人脸特征数据文件的准备

安装完成之后, 我们想要进行人脸识别的话, 还需要一些表示人脸的特征数据, 这些数据文件是存放在

Python环境的安装包下的 ----> Lib ----> site packages ----> cv2 -----> data的文件夹中

如果忘记了Python环境的安装位置, 可以在命令提示符工具/终端上 输入指令where python

在data文件夹中存放的都是xml文件, 这些就是对应的特征数据文件, 将 haarcascade_frontalface_alt.xml 导入到你的编辑工具中,与当前编辑的文件在同一个目录下

1.2 替换图片的准备

我使用的是下面这张旺财脸 o(╥﹏╥)o

2. 代码的实现

材料都准备完毕了, 我们就开始写代码吧

import cv2

if __name__ == '__main__'

# 根据人脸特征的数据 获取人脸检测器

face_detector = cv2.CascadeClassifier('.haarcascade_frontalface_alt.xml')

# 获取摄像头行为

cap = cv2.VideoCapture(0)

while True

# 从摄像头中按帧返回图片

flag,frame = cap.read()

if not flag # 没有图片时flag为False

break

# 将获取的图片置灰 检测效率高一些

face_zones = face_detector

.detectMultiScale(cv2.cvtColor(frame,

code=cv2.COLOR_BGR2GRAY))

# 获取检测到的人脸区域

for x,y,w,h in face_zones

# 读取覆盖图片

wc = cv2.imread('.head.png')

wc = cv2.resize(wc,dsize = (w,h)) # 将该图片的大小重置为人脸的大小

frame[yy+h,xx+w] = wc # 将人脸显示区域 替换成覆盖的图片

cv2.imshow('wangcai',frame) # 显示图片

key = cv2.waitKey(10)

if key == ord('q') # 输入q退出读取

break

cv2.destroyAllWindows()

cap.release()

最终结果如下图

代码运行结果

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39595302/article/details/111070692

智能推荐

计算机网络实验:802.3协议分析和以太网_你的主机的48位以太网地址是多少_Liocric的博客-程序员秘密

一、实验目的分析802.3协议 熟悉以太网帧的格式 熟悉ARP报文的格式二、实验环境与因特网连接的计算机网络系统;主机操作系统为windows; WireShark、IE等软件。三、实验步骤1、WireShark的使用及捕获并分析以太帧清空浏览器缓存(在IE窗口中,选择“工具/Internet选项/删除文件”命令)。 启动WireShark,开始分组捕获。 启动主机上的web浏览器。 启动WireShark。窗口中没有任何分组列表。 开始分组捕获:选择“capture”下拉

windows下安装OpenSlide-Python_fengkewei的博客-程序员秘密

refs:https://stackoverflow.com/a/52467429/2268680https://stackoverflow.com/a/45918595/22686801. 开发工具有几个东西需要额外安装, 如上面的图2. 用Native Tools VS2017下进入虚拟环境安装OpenSlide-Python:pip install openslid...

CYC-集合视图 UICollectionView的简单使用_YanChen-YC的博客-程序员秘密

UICollectionView集合视图 类似于UiTableview   是一种新的数据展示方式, 比起之前使用button或者是两套自定义cell 来布局 展示图片的方式  使用起来更加的简单方便!创建集合视图的步骤:1. 使用系统的布局UICollectionViewFlowLayout2.设置代理,设置数据源  3. 设置自定义cell/

使用Glide在targetSdkVersion 29以及以上遇到的问题_target29.0._l羽落l的博客-程序员秘密

在使用Glide框架加载图片时,在安卓系统10.0版本上(使用 targetSdkVersion 29)会出现加载不了图片问题,在AndroidManifest.xml文件中application标签下添加android:usesCleartextTraffic="true"android:requestLegacyExternalStorage="true"即可...

Java多线程下载同一个文件的实现,断点续传(Range)_sallai xu的博客-程序员秘密

如何实现多线程来下载一个文件多线程现在一些场景还是可以起到加速下载的作用的,例如github下载文件的时候有时候只有100kb/s或者更低,但是github下载服务是支持断点续传的。所谓的断点续传就是服务端支持返回所需文件的指定部分。举个栗子,master.zip 总10000字节数,我们只需要5001-10000的部分,我们可以通过设置请求头的方式来告诉服务端我们需要哪部分Range: bytes=5001-10000 所涉及知识线程池io流HttpURLConnection获取g

随便推点

jmeter插件如何协助进行内存监控 之 PerfMon Metrics Collector设置_weixin_30912051的博客-程序员秘密

参考文章:http://www.cnblogs.com/zhaoxd07/p/5197669.html当然最重要的是自己的实践,之前试的别人用的老的包 如XXstand.jar,结果并没有成功。此处得到的真知是:官网的才是可信的,虽然不想看英文,只是没有耐心,但是如果仔细看,发现就不会走那么多弯路。实践如下,好记性不如烂笔头!1、下载地址:https://...

SpringBoot @Scheduled参数(cron、fixedRate、fixedDelay、initialDelay)区别 (五)[email protected](fixedrate_码奴生来只知道前进~的博客-程序员秘密

1、fixedDelay控制方法执行的间隔时间,是以上一次方法执行完开始算起,如上一次方法执行阻塞住了,那么直到上一次执行完, 并间隔给定的时间后,执行下一次。 2、fixedRate是按照一定的速率执行,是从上一次方法执行开始的时间算起,如果上一次方法阻塞住了,下一次也是不会执行, 但是在阻塞这段时间内累计应该执行的次数,当不再阻塞时,一下子把这些...

Zabbix5系列-创建自动发现模板 (十六)_zabbix 海康威视_Halyace的博客-程序员秘密

一、参考Centos8安装DockerDebian10使用docker安装zabbix5.4Zabbix5.4 监控华为、H3C交换机华为oid查询: https://support.huawei.com/mibtoolweb/enterpriseMibInfo/zhMIB浏览器下载以华为IPS6555E入侵防御为例创建自动发现模板二、模板2.1 创建模板2.2 输入名称 选择群组2.3 选择3个链接模板 点击添加按钮2.4 打开刚创建的模板 切换到自动发现规则页(从链

国家电网计算机类考试范围_丁甲乙丙的博客-程序员秘密

文章目录公共与行业知识一般能力言语理解:对语言文字的综合分析能力数理思维:快速理解和解决算数问题的能力判断推理:根据一定的先知条件,通过拥有的知识、思维进行判定、推断,对事物得出结论的能力资料分析:主要包括文字类资料、表格类资料、图形类资料和综合类资料四种基本形式,综合考查应试者阅读、理解、分析、计算等方面的能力企业文化、电力与能源战略参见《国家电网有限公司企业文化、电力与能源战略》题库形式与政策中国共产党和中国政府现阶段的重大方针政策, 2020 年 1月至今的国际、国内重大时事专业知识数据结构与算法推荐

《动手学习深度学习》笔记:基础知识(如何在工程中借鉴呢?---- d2l包的解析)_shiter的博客-程序员秘密

动手学习深度学习前置的基础知识都有哪些呢?我们这篇文章来一一列举

Gephi安装——Cannot find Java 1.8 or higher_贪心西瓜的博客-程序员秘密

首先,尝试:https://blog.csdn.net/weixin_44447680/article/details/89842786不成功的话,就是版本不兼容的问题了,参照:https://blog.csdn.net/shine4869/article/details/103340820最后我安装了Gephi-0.9.1版本 和 Java Version 8版本,成功运行。Gephi-0.9.1下载地址:https://github.com/gephi/gephi/releases/..

推荐文章

热门文章

相关标签