用python写一段代码裁剪人脸双眼部分,适当外扩,并保存成jpg
时间: 2024-03-13 16:19:23 浏览: 19
以下是用 Python 和 OpenCV 库来裁剪人脸双眼部分并保存成 JPG 的代码示例:
```
import cv2
# 加载人脸检测器和眼睛检测器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
# 加载图片
img = cv2.imread('input.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 检测人脸
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5)
# 遍历每个人脸,并裁剪双眼部分
for (x,y,w,h) in faces:
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
eyes = eye_cascade.detectMultiScale(roi_gray)
for (ex,ey,ew,eh) in eyes:
eye_roi_color = roi_color[ey:ey+eh, ex:ex+ew]
eye_roi_color = cv2.copyMakeBorder(eye_roi_color, 20, 20, 20, 20, cv2.BORDER_CONSTANT, value=(255, 255, 255))
cv2.imwrite('output.jpg', eye_roi_color)
# 显示结果
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码中,我们首先加载了人脸检测器和眼睛检测器,然后加载了一张图片,将其转换为灰度图像,并使用人脸检测器检测出人脸的位置。接着,我们遍历每个人脸,使用眼睛检测器检测出双眼的位置,然后裁剪出双眼部分并适当地外扩,最后将其保存成 JPG 格式的图片。最后,我们还将处理后的图片显示出来,以便查看结果。