numpy 给定一个目标长宽比,如何裁剪成图像,围绕找到的脸取景

lo8azlld  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(102)

我有800 x800的肖像图像,并希望作物到它,找到脸和“框架”的中心,同时保持3:4的宽高比(轮廓选择框)。
所以我几乎需要计算出topbottomleftright的某种“中心点”,然后裁剪到那个点(红点)。
x1c 0d1x的数据
我相信我在某种程度上达到了这个目标,因为我的python不是特别好-这是我到目前为止所做的:

cropped_face_image = numpy.array(PIL.Image.open(BytesIO(image.content)))[
    top:bottom, left:right
]
pil_image = PIL.Image.fromarray(cropped_face_image)
pil_image.show()

字符串
这只是从图像中硬裁剪面部。

ycl3bljg

ycl3bljg1#

你可以这样做:

from PIL import Image
im = Image.open('FlKyDm.png.jpeg')
top, bottom, left, right = 95, 177 , 70, 150

# Calculate centre of face and box
centreX, centreY = int((left+right)/2), int((top+bottom)/2)

# Calculate face width
faceW = right - left

# Calculate half width of box and half height of box
boxHalfW = faceW
boxHalfH = int((boxHalfW * 4) / 3)

# Crop accordingly
res = im.crop((centreX-boxHalfW, centreY-boxHalfH, centreX+boxHalfW, centreY+boxHalfH))
res.save('result.jpg')

字符串


的数据

相关问题