有人可以看到我要去哪里了吗?我一直在逐行处理它,直到new_face开始产生NoneType时,所有这些都会产生预期的结果。
import numpy, cv2
from PIL import Image
face_cascade = cv2.CascadeClassifier("..data/haarcascade_frontalface_default.xml") #absolute path cut down for privacy
def find_faces(image_for_faces):
image = image_for_faces.resize((1800,3150))
image_np = numpy.asarray(image)
image_gray = cv2.cvtColor(image_np, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(image_gray) #correct numpy array, prints correct coordinates per face
face_list = []
image.show()
for face in faces:
print(face)
box = (face[0], face[1], face[0]+face[2], face[1]+face[3]) #correctly produces numpy coordinates
copy_image = image.copy()
cropped = copy_image.crop(box = (box))
new_face = cropped.thumbnail((128,128))
face_list.append(new_face)
return face_list
y = Image.open('famphoto.jpg')
z = y.convert('RGB')
x = find_faces(z)
答案 0 :(得分:2)
Image.thumbnail()
在适当位置修改Image
对象,在docs中详细了解它。它提到它返回None
类型。
Image.thumbnail:
将此图像制作为缩略图。此方法将图像修改为 包含本身的缩略图版本,不大于给定的大小。 此方法计算适当的缩略图大小以保留 图像的方面,调用draft()方法来配置文件 阅读器(如果适用),最后调整图像大小。