Python2.7 & OpenCV3.0实现人脸检测的简单实例

基于Python的OpenCV人脸检测 本文将要讲述的是Python环境下如何用OpenCV检测人脸,本文的主要内容分为: 1、检测图片中的人脸 2、实时检测视频中出现的人脸 3、用运设备的摄像头实时检测人脸 提前做的准备: 安装好Python3 下载安装OpenCV库,方法是pip install opencv-python -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com/pypi/simple 下载特征数据HAAR和LBP,这两种数 阅读详情
 本文使用的是Anaconda(是一个开源的Python发行版本,包括IPython、Spyder等多种组件,集成了numpy、matplotlib等多种科学包)和OpenCV3.0。
 使用Anaconda自带的IDE(Spyder)开发,先定义一个函数,是为检测到人脸并返回相应的坐标。需要注意的是cv2.CascadeClassifier()里面放你自己的xml文件地址。代码如下:
def detectFaces(imagePath):
    img = cv2.imread(imagePath)
    #加载openCV自带的人脸检测级联分类器配置文件haarcascade_frontalface_default.xml
    faceCascade = cv2.CascadeClassifier(r"D:\Software\OpenCV3.0\opencv\sources\data\haarcascades\haarcascade_frontalface_default.xml")
    #此处报错Nonetype object has no attribute ndim表示imread()没有读到图片
    #if语句:如果img维度为3,说明不是灰度图,先转化为灰度图gray,如果不为3,也就是2,原图就是灰度图
    if img.ndim == 3:
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    else:
        gray = img 

    faces = faceCascade.detectMultiScale(gray, 1.2, 6)#1.2和6是特征的最小、最大检测窗口,它改变检测结果也会改变
    result = []
    for (x,y,width,height) in faces:
        result.append((x,y,x+width,y+height))
    return result
拿到人脸坐标后,可以将识别出的人脸生成图片保存到定义的文件夹中。附上代码:
def savePictures(imagePath):
    faces = detectFaces(imagePath)
    if faces:
        #将人脸保存在save_dir目录下。
        #Image模块:Image.open获取图像句柄,crop剪切图像(剪切的区域就是detectFaces返回的坐标),save保存。
        saveFolder = imagePath.split('.')[0]+"_faces"
        os.mkdir(saveFolder)
        count = 0
        for (x1,y1,x2,y2) in faces:
            fileName = os.path.join(saveFolder,str(count)+".jpg")
            Image.open(imagePath).crop((x1,y1,x2,y2)).save(fileName)
            count+=1
此外,也还可以在原图对每张人脸用矩形框标记出来,代码如下:
"""
在原图像上画矩形,标记出所有人脸。
调用Image模块的draw方法,Image.open获取图像句柄,ImageDraw.Draw获取该图像的draw实例,然后调用该draw实例的rectangle方法画矩形(矩形的坐标即detectFaces返回的坐标),outline是矩形线条颜色(B,G,R)。
注:原始图像如果是灰度图,则去掉outline,因为灰度图没有RGB可言。
"""
def drawPictures(imagePath):
    faces = detectFaces(imagePath)
    if faces:
        img = Image.open(imagePath)
        drawInstance = ImageDraw.Draw(img)
        for (x1,y1,x2,y2) in faces:
            drawInstance.rectangle((x1,y1,x2,y2), outline=(255, 0,0))
        img.save(imagePath.split('.')[0]+"_faces"+".jpg")
Python3.7.2+openCV实现本地视频文件中人脸检测 利用openCV自带CascadeClassifier级联分类器的haarcascade_frontalface_alt2.xml实现本地视频文件中的人脸检测 环境准备:一是python3.7.2,二是opencv_python-4.0.1-cp37-cp37m-win_amd64,三是haarcascade_frontalface_alt2.xml,四是视频文件 阅读详情

相关推荐

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之七 简单进行人脸检测并添加面具特效实现

Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。Python是一种解释型脚本语言,可以应用于以下领域: Web 和 Internet开发、科学计算和统计、人工智能、教育、桌面界面开发、软件开发、后端开发、网络爬虫。这里使用 Python 基于 OpenCV 进行视觉图像处理,......

仙魁XAN 2013

Python2.7+Opencv 人脸检测

一个官网的demo: 来源:http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_objdetect/py_face_detection/py_face_detection.html#face-detection python3下搭建环境实在很烦……两小时都没搞定,于是我放弃了……我就用python2吧 不知道2和3版本的真正区别(除了pr

lichar03的博客 541

OpenCV3.0+Python3.6实现特定颜色的物体追踪

主要为大家详细介绍了OpenCV3.0+Python3.6实现特定颜色的物体追踪,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

人脸识别python face_recognize_python2.7使用face_recognition做人脸识别

偶然看到一篇文章,说是可以实时人脸识别,很有兴趣就自己按照文章开始动手人脸识别,但是实现过程中遇到了几个问题这里做个总结,希望可以帮助到大家安装face_recognition这个之前需要先安装编译dlib,如果没有安装dlib,那么我们先来装dlib,但是按照dlib的时候多数情况会出现 not found boost。这是我们并没有按照boost,那么我们按顺序来,先装boost1:sudo ...

weixin_39674414的博客 360

气象干旱触发水文(农业)干旱的概率及其触发阈值的动态变化-贝叶斯copula模型

本文通过建立不同类型干旱传播过程的触发阈值模型,解析了在不同等级气象干旱胁迫下诱发次一级干旱类型的触发阈值。通过贝叶斯概率模型,我们推导了气象干旱与水文干旱、农业干旱、地下水干旱之间的条件概率关系,进一步明确了气象干旱引发水文干旱、农业干旱和地下水干旱的概率及其触发阈值。该模型有效揭示了气象干旱对各级干旱类型的传播机制及其动态变化,为干旱预警系统的建立和水资源管理提供了理论依据和技术支持。

frankgis的博客 2503

审稿人看了直呼内行:多组学整合分析——科研小白进阶之路

多组学,多平台分析解决方案

pysonger的博客 3944

Win7环境下VS2015+Python 2.7 编译人脸识别开源库 face_recognition

最近在研究一个人脸识别开源框架face_recognition,编译需要依赖 dlib、boost、cmake 等相关环境,在编译的时候,踩了一大堆坑,网上资料大都不是很全面再加上 Windows 环境下去配置这些本身就比 Liunx 或 Mac下配置要相对麻烦一些。如果你是准备在 Windows 环境下编译,就做好准备踩坑吧~~~ 系统环境 Windows 7 Python 2.7.14...

weixin_34074740的博客 355

【TensorRT】TensorRT C# API 项目介绍:基于C#与TensorRT部署深度学习模型(上篇)

开发了TensorRT C# API 2.0版本,该版本在开发时充分考虑了上一版本应用时出现的问题,并进行了改进。同时在本版本中,我们对接口进行了优化,使用起来更加简单,并同时提供了相关的应用案例,方便开发者进行使用。

grape_yan的博客 3038

python2.7+opencv3.1人脸识别

转载自: http://blog.csdn.net/wireless_com/article/details/64120516 ubuntu16.04 opencv3.1 python2.7 下运行通过 # -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8') impor...

微电子学与固体电子学-俞驰 863

使用 AFL++ 对 IoT 二进制文件进行模糊测试 - 第一部分

American fuzzy lop 是一款面向安全的模糊测试器,它采用一种新型的编译时插桩和遗传算法,可以自动发现干净、有趣的测试用例,从而触发目标二进制文件中新的内部状态。这显著提高了模糊测试代码的功能覆盖率。AFL 的地址是它已经有一段时间没有更新了。虽然 AFL 仍然运行良好,但有一个新项目 AFL++,它是 AFL 的一个分支,包含许多改进和新功能。AFL++ 的地址是,其源代码位于。在本文中,我们将研究如何使用 AFL++ 对 IoT 二进制文件进行模糊测试。

技术超强的网络安全平台 1088

Netron显示自定义属性,按属性设置不同节点的颜色

本文介绍了一种让Netron显示自定义颜色的方法,可根据某些属性,调整节点的颜色 需求背景: 在分析AI模型精度误差时,用不同等级的红色,表示误差的大小.可以直观地看到误差的传递关系

Hi20240217的博客 1513

python+opencv 实现图像人脸检测及视频中的人脸检测

python+opencv 实现图像人脸检测及视频中的人脸检测,首先下载人脸检测要用到的分类器,熟悉opencv相关API的使用,然后利用python+opencv实现图像单人脸检测、图像多人脸检测、视频中人脸检测和摄像头人脸检测。

叶庭云 成为自己的光 1万+

IGBT基础知识

IGBT

u010783226的专栏 1万+

3分钟内实现人脸检测

人脸检测是人工智能最常见的应用之一。从智能手机的摄像头应用到Facebook的标签建议(Tag Suggestions),人脸检测的应用每天都在增加。 人脸检测是计算机程序在数字图像中识别和定位人脸的能力。 随着应用对人脸检测功能的需求越来越大,每个人都希望在自己的应用中使用人脸检测,这样他们就不会在竞争中落后。 在这篇文章中,我将教你如何在3分钟内为自己建立一个人脸检测程序。 你需要安装以下p...

TensorFlowNews 1万+

YOLO11改进 - 卷积Conv | StripBlockStripBlock大条带卷积块,通过顺序条带卷积捕获方向性长程依赖,强化高长宽比目标特征提取 | AAAI 2026

本文介绍了面向高纵横比目标检测的条带卷积模块——StripBlock,适用于遥感、船只、车道等细长结构目标的特征增强。该方法先通过 `5×5` 深度卷积提取局部空间信息,再利用 `1×19` 与 `19×1` 的正交长条卷积分别建模横向和纵向长程依赖,最后通过 `1×1` 卷积生成空间注意力权重,并以逐元素门控方式重标定输入特征。我们将 StripBlock 成功集成进 YOLO11,在检测头的多尺度特征层中引入条带式空间建模能力,从而增强模型对细长目标和复杂遥感场景的定位与识别效果。

魔改工程师的博客 234

ComfyUI整合包、秋叶ComfyUI、Florence节点报错下载并加载Florence2模型No module named ‘timm.layers‘、ComfyUI报错解决

步骤操作1打开2地址栏输入cmd并回车3输入命令:4安装完成后重新打开 ComfyUI,执行工作流,即可解决报错。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1243

简单人脸识别一之使用opencv+cnn网络实现人脸识别

最近在研究目标检测这个方向,看到网上有很多的人脸识别帖子,所以也想着上上手看看。当时是做了三个模型出来,第一个就是网上很通用普遍的opencv+简单三层cnn网络来实现的,说实话效果真的一般吧!具体的下面再细细陈述。第二个是把三层cnn网络换成了残差网络。因为自己刚好也是学习了残差网络。就想着生搬硬套过来,但效果说实话很迷,时好时坏,把我是整蒙逼了,后面也会提的。最后一个是用opencv+MTCN...

飞奔的菜猪的博客 3万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

利用OpenCV检测人脸(python实现)

摘要:人脸识别(Face Recognition)是当前一项非常热门的研究领域。这里介绍采用图像处理中的强大工具OpenCV实现简单的图片中人脸的检测,并在图像中标记出感兴趣区域(region of interest)。本文详细介绍如何使用python实现图片中人脸、眼睛的检测,并标记出来(如图),文中给出了全部代码,主要内容如下:OpenCV haar分类器、人脸标记、完整代码。

思绪无限的博客 3万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Python-OpenCV人脸检测(代码)

做人脸识别,首先要检测出图片/视频中的人脸,今天就研究了一下OpenCV的Python接口,把常用的一些功能模块写成函数。基于Python-OpenCV以及PIL,实现图片中人脸的检测以及截取保存、眼睛检测、笑脸检测。下面简单总结一下。........总之,利用opencv里训练好的haar特征的xml文件,在图片上检测出人脸(眼睛、鼻子、笑脸…)的坐标,利用这个坐标,我们可以将人脸区域剪切保存,也可以在原图上将人脸框出。剪切保存人脸以及用矩形工具框出人脸,本程序使用的是PIL里的Image、ImageDr

wepon的专栏 7万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

人工智能-OpenCV+Python实现人脸识别(视频人脸检测)

上期文章我们分享了opencv识别图片中的人脸,OpenCV图片人脸检测,本期我们分享一下如何从视频中检测到人脸 视频人脸检测 OpenCV打开摄像头特别简单,只需要如下一句代码 capture = cv2.VideoCapture(0) # 打开摄像头 打开摄像头后,我们使用如下一句代码,来获取视频中的图片(每帧图片) ret, frame = capture.read() # 读...

huang714的专栏 2万+

python+OpenCv+dlib实现人脸68个关键点检测并标注

寒假跟着老师做科技部的项目,主要做微表情的检测。刚开始一头雾水,在研究了两天之后,渐渐找到了一点感觉。 ——这里主要实现了利用python3.6 + OpenCV + dlib 实现人脸68个关键点检测并标注 。 python3.6下dlib的配置 利用提供的训练模型进行人脸检测 使用OpenCV进行标注 python3.6 下 dlib 的配置 dlib...

飞絮的博客 5万+

opencv基于DNN的人脸检测

from:https://blog.csdn.net/minstyrain/article/details/78907425 opencv3.4 版之前自带的人脸检测器是基于Haar+Adaboost的,速度还可以,但是检出率很低,误检也很多,脸的角度稍大就检不出来,还经常会把一些乱七八糟的东西当做人脸,实在不敢恭维。好在随着深度学习领域的发展,涌现了一大批效果相当不错的人脸检测算法,...

知识搬运工的博客 2万+

Python中使用opencv-python进行人脸检测

之前写过一篇的博客。以数字图像处理中经常使用的lena图像为例,如下图所示:使用OpenCV进行人脸检测十分简单,OpenCV官网给了一个Python人脸检测的示例程序,所在目录为D:\env_build\opencv4.9.0\opencv\sources\samples\python\tutorial_code\objectDetection\cascade_classifier\objectDetection.py。

ccf19881030的专栏 5688

使用OpenCV实现人脸检测(Python)

文章目录Introduction步骤导入工具包和模型路径级联分类器积分图像使用 Adaboost 学习分类函数级联分类器输入检测图像中的人脸实时人脸检测封装 Introduction 本教程将介绍如何使用 OpenCV 和 Dlib 在 Python 中创建和运行人脸检测算法。同时还将添加一些功能,以同时检测多个面部的眼睛和嘴巴。本文介绍了人脸检测的最基本实现,包括级联分类器、HOG 窗口和深度学习 CNN。 我们将通过以下方法实现人脸检测: 使用 OpenCV 的 Haar 级联分类器 使用 Dlib

如果想成为中心,那么就到中心去吧。 3874

OpenCV-人脸检测

上述代码通过加载级联分类器并通过faceCascade.detectMultiScale()函数来检测人脸,并对检测到的人脸进行标注,简单反应了OpenCV中的人脸检测的运用。综上所述,OpenCV提供了强大的人脸检测功能,通过加载预训练的分类器并在灰度图像中检测人脸,可以方便地实现人脸检测任务。人脸检测是识别图像中人脸位置的过程,它是人脸识别的第一步。

2301_77698138的博客 3489

OpenCV:人脸检测

OpenCV是一个开源、跨平台的计算机视觉库,可以用于各种图像和视频处理操作。 所以接下来会分享一些关于OpenCV有趣的小案例,毕竟要让学习变得有趣。 本次就来了解一下,如何通过OpenCV对人脸进行检测。 其中OpenCV有C++和Python两种,这里当然选用Python啦。 环境什么的,就靠大伙自己去百度了。 / 01 / 图片检测 先来看一下图片检测,原图如...

zhusongziye的博客 1万+
下一篇: 【开发工具】Git版本控制及报错处理
少侠露飞
博客等级 码龄9年 214粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值