用python写一段代码裁剪人脸眼睛部分
时间: 2023-12-17 22:22:30 浏览: 161
Python-autocrop批量从照片自动裁剪人脸
以下是用Python和OpenCV库裁剪人脸和眼睛部分的代码:
```
import cv2
# 读取图片
img = cv2.imread('input.jpg')
# 创建Haar级联分类器对象
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
# 将图片转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 检测人脸
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# 遍历每个检测到的人脸
for (x,y,w,h) in faces:
# 绘制矩形框
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
# 裁剪人脸区域
face_gray = gray[y:y+h, x:x+w]
face_color = img[y:y+h, x:x+w]
# 检测眼睛
eyes = eye_cascade.detectMultiScale(face_gray)
# 遍历每个检测到的眼睛
for (ex,ey,ew,eh) in eyes:
# 绘制矩形框
cv2.rectangle(face_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
# 裁剪眼睛区域
eye_gray = face_gray[ey:ey+eh, ex:ex+ew]
eye_color = face_color[ey:ey+eh, ex:ex+ew]
# 显示结果
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,'input.jpg'是输入图片的文件名,'haarcascade_frontalface_default.xml'和'haarcascade_eye.xml'是OpenCV提供的Haar级联分类器模型文件,用于检测人脸和眼睛。执行这段代码后,会显示原图,并在人脸和眼睛部位绘制矩形框,同时将裁剪后的人脸和眼睛区域分别保存在face_gray/face_color和eye_gray/eye_color变量中。
阅读全文