当前位置: 首页 > 编程笔记 >

使用OpenCV在Python中进行人脸和眼睛检测

徐飞龙
2023-03-14
本文向大家介绍使用OpenCV在Python中进行人脸和眼睛检测,包括了使用OpenCV在Python中进行人脸和眼睛检测的使用技巧和注意事项,需要的朋友参考一下

使用的模块:

python-opencv(cv2)

python-opencv(cv2)

Opencv(Open source computer vision) 是一个python库,可帮助我们解决计算机视觉问题。

下载python-opencv(cv2)

  • 通用方式:pip install python-opencv

  • Pycharm用户:Pycharm用户可以从项目解释器下载此模块。

在这里,我们将检测个人的脸部和眼睛。为此,我们使用系统的网络摄像头和XML文件来检测面部和眼睛。我们将在帧中检测到面部,然后将眼睛插入面部,因此我们将进入面部坐标并检测眼睛,并在检测到的面部和眼睛上绘制矩形。

与面部和眼睛检测相关的功能

  • cv2.CascadeClassifier(“ <用于检测的xml文件>”):此函数用于获取面部和眼睛的提取物,以及如何检测它们。

  • cv2.Videocapture():这是用于通过我们系统的网络摄像头进行视频捕获。

  • <面部或眼睛提取物> .detectmultiscale(<灰度图像>,1.3,5):检测帧中的面部或眼睛。

  • cv2.rectangle(<我们要在其上放置矩形的框架>,(<开始位置>,<结束位置>,(<颜色>),厚度= <边框的厚度>)

注意:面部和眼睛的检测将处于灰度模式。

用于面部和眼睛检测的XML文件的链接为:

  • 人脸: https : //github.com/abhinav0606/Face-and-Eyes-Tracker/blob/master/face.xml

  • 眼睛: https //github.com/abhinav0606/Face-and-Eyes-Tracker/blob/master/eye.xml

用于检测人脸和眼睛的Python代码

# 导入模块
import cv2

# 现在我们有了haarcascades文件 
# 检测脸部和眼睛检测脸部
faces=cv2.CascadeClassifier("face.xml")

# 侦测眼睛
eyes=cv2.CascadeClassifier("eye.xml")

# 通过网络摄像头捕获帧
capture=cv2.VideoCapture(0)

# 现在运行网络摄像头的循环
while True:
    # 阅读网络摄像头
    ret,frame=capture.read()

    # 现在脸在框架中
    # 检测是通过灰度框完成的
    gray_frame=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
    face=faces.detectMultiScale(gray_frame,1.3,5)

    # 现在进入面部及其位置
    for (x,y,w,h) in face:
        # 在脸上绘制矩形
        cv2.rectangle(frame,(x,y),(x+w,y+h),(0,0,255),thickness=4)

        # 现在眼睛在脸上
        # 所以我们必须将脸框设为灰色
        gray_face=gray_frame[y:y+h,x:x+w]

        # 使颜色也变脸
        color_face=frame[y:y+h,x:x+w]

        # 检查这只脸上的眼睛
        eye=eyes.detectMultiScale(gray_face,1.3,5)

        # 以其位置进入眼睛
        for (a,b,c,d) in eye:
            # 我们必须在
            # 彩色的脸
            cv2.rectangle(color_face,(a,b),(a+c,b+d),(0,255,0),thickness=4)

    # 显示框架
    cv2.imshow("Abhinav's Frame",frame)
    if cv2.waitKey(1)==13:
        break

# 结束循环后,释放框架capture.release()cv2.destroyAllWindows()

运行程序,打开电脑摄像头,即可查看和输出,人脸和眼睛检测图像

 类似资料:
  • 本文向大家介绍python使用opencv进行人脸识别,包括了python使用opencv进行人脸识别的使用技巧和注意事项,需要的朋友参考一下 环境 ubuntu 12.04 LTS python 2.7.3 opencv 2.3.1-7 安装依赖 示例代码 转换效果 原图: 转换后 使用感受 对于大部分图像来说,只要是头像是正面的,没有被阻挡,识别基本没问题,准确性还是很高的。 识别效率有点低,

  • 问题内容: 嗨,大家好,我正在一个项目中,我们试图检测照片中眼睛是闭合还是睁开……到目前为止,我们所做的是先检测到人脸,然后再检测到眼睛,然后应用霍夫变换,希望虹膜是睁开眼睛时唯一的圆,问题是,闭眼时…也会产生一个圆 这是代码: 关于如何使其更准确的任何建议? 问题答案: 在大多数情况下,即眼睛部分张开或闭合时,环形霍夫变换不太可能很好地起作用。最好隔离眼睛周围的矩形区域(边界框),并根据像素强度

  • 主要内容:第1步:加载OpenCV本机库,第2步:实例化CascadeClassifier类,步骤3:检测脸部包的类包含使用系统摄像头捕获视频的类和方法。 让我们来看看它是如何做到这一点。 第1步:加载OpenCV本机库 在使用OpenCV库编写Java代码时,需要做的第一步是使用加载OpenCV本地库。加载OpenCV本机库,如下所示。 第2步:实例化CascadeClassifier类 包的类用于加载分类器文件。 通过传递xml文件来实例化这个类,如下所示。 步骤3:检测脸部 可以使用类的方

  • 我正在用OpenCV做人脸检测的应用程序。应用程序安装在手机里,但是由于致命的错误,它突然关闭了。这是我的主要活动。java 这是我的错误,有人能帮忙吗? 如果有人能给出解决错误的步骤,这将是非常有帮助的。

  • 以下程序演示如何使用系统相机检测脸部并使用JavaFX窗口显示脸部。 参考以下示例代码 - 执行上面示例代码,得到以下结果 - 系统提示:头像太丑,无法显示…

  • 本文向大家介绍OpenCV实现人脸检测功能,包括了OpenCV实现人脸检测功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了OpenCV实现人脸检测功能的具体代码,供大家参考,具体内容如下 1、HAAR级联检测 2、 DNN人脸检测 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。