Python-3.1使用CV2进行人脸检测

Python-3.1使用CV2进行人脸检测

提示:实验示例,仅供参考
Python:下载地址
IDEA Python:下载地址
Open CV:官网


目录

  • Python-3.1使用CV2进行人脸检测
  • 前言
  • 一、安装OpenCV
    • 环境准备
  • 二、使用OpenCV
    • 新建项目
    • 创建目录
    • Python代码
  • 总结


前言

随着人工智能的不断发展,机器视觉越来越重要,如下介绍Opencv中人脸识别应用。


一、安装OpenCV

环境准备

打开Pycharm,点击右上角File,选中Settings
在这里插入图片描述
搜索,opencv-python,然后点击左下角,Package Install
搜索,numpy,然后点击左下角,Package Install
在这里插入图片描述

二、使用OpenCV

新建项目

Python-3.1使用CV2进行人脸检测_第1张图片

创建目录

  1. imgs 用于存放需要识别的图片
  2. generate-imgs 用于存放识别后裁剪的人脸图片
    本识别使用02.py, 01.py 和 03.py 不用创建
    在这里插入图片描述
    existFace.jpg 有人脸的图片
    Python-3.1使用CV2进行人脸检测_第2张图片
    notFace.jpg 没有人脸的图片
    Python-3.1使用CV2进行人脸检测_第3张图片

Python代码

# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
import sys
import cv2

# 读取一张需要检测人脸的图片
imgPath = 'imgs\\existFace.jpg'
# imgPath = 'imgs\\notFace.jpg'
img = cv2.imread(imgPath)

# 调用本地cv训练模型,在本地项目对应安装opencv的目录下
face_cascade = cv2.CascadeClassifier('D:\\space\\python\\test1\\venv\\Lib\\site-packages\\cv2\\data\\haarcascade_frontalface_default.xml')

# 人脸检测,
# 参数:
#   {
#   [img:待检测图片,一般为灰度图像加快检测速度],
#   [scaleFactor--表示在前后两次相继的扫描中,搜索窗口的比例系数。默认为1.1即每次搜索窗口依次扩大10%]
#   [minNeighbors--表示构成检测目标的相邻矩形的最小个数(默认为3个)。
#         如果组成检测目标的小矩形的个数和小于 min_neighbors - 1 都会被排除。
#         如果min_neighbors 为 0, 则函数不做任何操作就返回所有的被检候选矩形框,
#         这种设定值一般用在用户自定义对检测结果的组合程序上]
#   }
#   返回人脸数组
faces = face_cascade.detectMultiScale(img, scaleFactor=1.3, minNeighbors=5)
print(faces)
# 如果没有人脸
if len(faces) == 0:
    print('没有人脸,退出')
    sys.exit()
# 遍历人脸
for x, y, w, h in faces:
    # 画人脸位置-正方形,画RGB白色,线条宽度为1
    img2 = cv2.rectangle(img, (x, y), (x + w, y + h), (255, 255, 255), 1)
    # 取人脸区域
    face_area = img2[y:y + h, x:x + w]
    # 将人脸图片存起来
    cv2.imwrite('generate-imgs\\copy.png', img2)
    cv2.imwrite('generate-imgs\\face.png', face_area)

cv2.imshow('img', img2)
cv2.waitKey(0)
cv2.destroyAllWindows()


总结

不要放弃你的幻想。当幻想没有了以后,你还可以生存,但是你虽生犹死。

你可能感兴趣的:(人脸识别,python,opencv,开发语言)