用pythong写一个照片人脸分类软件
时间: 2024-02-18 22:00:08 浏览: 68
基于Python实现人脸检测与分类【100010922】
5星 · 资源好评率100%
要编写一个照片人脸分类软件,需要用到人脸识别库和图像处理库,比如OpenCV和Pillow。以下是一个简单的Python代码示例:
```python
import os
import cv2
from PIL import Image
# 加载人脸识别器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 设定照片文件夹路径
photo_dir = 'photo_folder'
# 用于存储人脸图像的文件夹路径
face_dir = 'face_folder'
# 如果用于存储人脸图像的文件夹不存在,则创建该文件夹
if not os.path.exists(face_dir):
os.makedirs(face_dir)
# 遍历照片文件夹中的所有照片
for filename in os.listdir(photo_dir):
# 打开照片文件
img = cv2.imread(os.path.join(photo_dir, filename))
# 将图像转换为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 检测人脸
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5)
# 对于每张检测到的人脸,将其保存到人脸文件夹中
for (x,y,w,h) in faces:
face_img = Image.fromarray(img[y:y+h, x:x+w])
face_img.save(os.path.join(face_dir, f'{filename}_{x}_{y}.jpg'))
```
这个程序使用OpenCV加载了一个名为`haarcascade_frontalface_default.xml`的人脸识别器。然后,它遍历指定的照片文件夹中的所有照片,并在其中检测人脸。检测到的每个人脸都被保存到一个名为`face_folder`的文件夹中。每个人脸图像的文件名包括原始照片的文件名、人脸位置的x和y坐标。
阅读全文