前言

利用Python实现OpenCV实现人脸检测,废话不多说~

让我们愉快地开始吧~

开发工具

Python版本: 3.6.4

相关模块:

cv2模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

OpenCV是一个开源、跨平台的计算机视觉库,可以用于各种图像和视频处理操作。

今天就来告诉大家如何通过OpenCV对人脸进行检测

图片检测

看一下图片检测,原图

训练数据是现成的,利用现成的数据,通过训练进而来检测人脸

具体代码如下

import cv2# 图片名
filename = 'cxk.png'def detect(filename):# cv2级联分类器CascadeClassifier,xml文件为训练数据face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')# 读取图片img = cv2.imread(filename)# 转灰度图gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 进行人脸检测faces = face_cascade.detectMultiScale(gray, 1.3, 5)# 绘制人脸矩形框for (x, y, w, h) in faces:img = cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)# 命名显示窗口cv2.namedWindow('people')# 显示图片cv2.imshow('people', img)# 保存图片cv2.imwrite('cxks.png', img)# 设置显示时间,0表示一直显示cv2.waitKey(0)detect(filename)
复制代码

结果展示

检测视频

视频用的抖音的上的视频

这里只截取检测效果比较好的视频段作为例子

毕竟训练数据的质量摆在那里,有的时候会出现一些错误

如想提高检测的精度,便需要一个高质量的人脸数据库

具体代码如下

import cv2def face_rec():# 加载视频cameraCapture = cv2.VideoCapture('video.mp4')# cv2级联分类器CascadeClassifier,xml文件为训练数据face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')# 读取数据success, frame = cameraCapture.read()while success and cv2.waitKey(1) == -1:# 读取数据ret, img = cameraCapture.read()# 进行人脸检测faces = face_cascade.detectMultiScale(img, 1.3, 5)# 绘制矩形框for (x, y, w, h) in faces:img = cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)# 设置显示窗口cv2.namedWindow('camera', 0)cv2.resizeWindow('camera', 840, 480)# 显示处理后的视频cv2.imshow('camera', img)# 读取数据success, frame = cameraCapture.read()# 释放视频cameraCapture.release()# 释放所有窗口cv2.destroyAllWindows()if __name__ == '__main__':face_rec()
复制代码

结果为视频,这里就不展示了大家可以去网上找下视频做测试就会明白~

有小可爱需要源码或者python相关资料关注我就行后台点击链接找我哦~

Python图像处理,cv2模块,OpenCV实现人脸检测蔡徐坤相关推荐

  1. python运行cmd命令和opencv搭建_Python让蔡徐坤在我的命令行里打篮球!

    原标题:Python让蔡徐坤在我的命令行里打篮球! 作者自称是一个经常逛 B 站的肥宅.最近 B 站上流行的视频素材除了"换脸",其次就要属"蔡xx打球"视频了 ...

  2. python 把numpy.ndarray转为图像_Python 让蔡徐坤在我的命令行里打篮球?打得还不错...

    这是恋习Python推荐的第83篇好文 作者:顾个城管打天下 作者自称是一个经常逛 B 站的肥宅.最近 B 站上流行的视频素材除了"换脸",其次就要属"蔡xx打球&quo ...

  3. OpenCV实现人脸检测和68点定位

    人脸对比是现在比较常用的功能,比如出租车司机人脸与司机驾照照片对比,门禁系统中进入者的人脸与人脸库中的人脸进行对比.要实现人脸对比,首先要实现的是人脸检测,在摄像头拍摄到的一张图片中,正确的检测到人脸 ...

  4. 《OpenCv视觉之眼》Python图像处理十九:Opencv图像处理实战四之通过OpenCV进行人脸口罩模型训练并进行口罩检测

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  5. python基于opencv的人脸检测(有最详细的注释)摄像头实时检测人脸

    主要实现功能: 通过opencv的模块的内置的方法打开电脑摄像头,读取每一帧数据进行分析.通过界面的方式在界面里实时更新摄像头视频并且标记出人脸. 效果图: 代码: 这部分代码可以用来检测opencv ...

  6. 《OpenCv视觉之眼》Python图像处理十六:Opencv图像处理实战一之图像中的硬币检测

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  7. 基于opencv的人脸检测与识别(python)(1)

    基于opencv的人脸检测与识别(python语言)(1) 人脸检测和识别技术就目前而言,已经相对成熟,各类算法层出不穷,这都归功于各位奋斗在一线的大佬的努力(站在巨人的肩膀上的感觉就是爽).本文是参 ...

  8. 使用OpenCV进行人脸检测和戴墨镜特效实战(附Python源码)

     需要源码和图片请点赞关注收藏后评论区留言私信~~~ 人脸识别是基于人的脸部特征信息进行身份识别的一种生物识别技术,也是计算机视觉重点发展的技术.机器学习算法诞生之后,计算机可以通过摄像头等输入设备自 ...

  9. 《OpenCv视觉之眼》Python图像处理十四 :Opencv图像轮廓提取之Scharr算法和Canny算法

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

最新文章

  1. 安卓高手之路之PackageManagerservice(二)
  2. 1130 Infix Expression (25 分)【难度: 一般 / 知识点: 中序遍历】
  3. 设置组件局部样式原理-属性选择器
  4. OpenShift安装
  5. 关于JSON的简介及取值以及常见面试题
  6. 轴承配合公差表查询_如何选择轴承公差和配合,才能更好保证电机轴承系统的运行?...
  7. ApacheCN 安卓译文集 20211225 更新
  8. 谈谈python enumerate()函数的用法_python enumerate函数的使用方法总结
  9. 华为鸿蒙为什么非要碰物联网?
  10. 12 个轻量级的 JavaScript 库
  11. SharePoint 2010遍历文档库中所有的文件,文件夹
  12. 【程序35】 ArrayChange.java 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
  13. 主数据同步与分发实现
  14. Debian下的搜狗拼音安装个人心得
  15. Lcd ST7789S寄存器初始化配置
  16. 2018湖南计算机对口高考C语言答案,2018年湖南省对口高考C语言试题
  17. 计算单词的长度C++
  18. Python去除小数点后面多余的0
  19. 马云点了人类史上最贵“外卖”,又一场“三国杀”即将来临?
  20. Outlook邮箱设置多个别名

热门文章

  1. R语言rename重命名dataframe的列名实战:rename重命名dataframe的列名(写错的列名不会被重命名)
  2. pandas使用iloc函数基于dataframe数据列的索引抽取单列或者多列数据、其中多列索引需要嵌入在列表方括号[]中、或使用:符号形成起始和终止范围索引
  3. R语言merge函数全连接dataframe数据(Full (outer) join)、merge函数进行全连接必须将参数all设置为true(all=TRUE)、默认merge函数通过公共列名合并数
  4. R语言删除包含缺失值的行并将字符数据列(character)转化为因子列(factor)实战
  5. R语言ggplot2可视化箱图(boxplot)时忽视异常值(outlier)并重新分配坐标轴的范围是的可视化的箱图可以有效显示箱体实战
  6. plotly基于dataframe数据绘制散点图(scatter plot)
  7. dropout是什么?为什么dropout管用?测试集上是否需要使用dropout?说明为什么神经网络中的dropout可以作为正则化?
  8. 使用KNN模型进行多输出分类实战(Multioutput Classification)
  9. 损失函数(损失函数、代价函数、目标函数)、​​​​​​​MSE、0-1损失函数、绝对误差损失函数、分位数损失函数、Huber损失函数、感知损失函数、Hinge损失函数、指数损失函数、对数损失函数
  10. 使用wide和buildbox构建完全在线的开发集成环境