提示:实验示例,仅供参考
Python:下载地址
IDEA Python:下载地址
Open CV:官网
随着人工智能的不断发展,机器视觉越来越重要,如下介绍Opencv中人脸识别应用。
打开Pycharm,点击右上角File,选中Settings
搜索,opencv-python,然后点击左下角,Package Install
搜索,numpy,然后点击左下角,Package Install
本识别使用02.py, 01.py 和 03.py 不用创建
existFace.jpg 有人脸的图片
notFace.jpg 没有人脸的图片
# -*- 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()
不要放弃你的幻想。当幻想没有了以后,你还可以生存,但是你虽生犹死。