写一个Demo例子,使用人脸数据库GENKI部分的图像做实验,该数据的数字子集GENKI-SZSL提供人脸区域的坐标和大小。提取代码如下:
from PIL import Image
import os
src = '.'
imlist = open(src + '/GENKI-SZSL_Images.txt', 'r').readlines()
rs = [float(line.split()[1]) for line in open(src + '/GENKI-SZSL_labels.txt', 'r').readlines()]
cs = [float(line.split()[0]) for line in open(src + '/GENKI-SZSL_labels.txt', 'r').readlines()]
ss = [float(line.split()[2]) for line in open(src + '/GENKI-SZSL_labels.txt', 'r').readlines()]
for i in range(0, len(rs)):
path = src + '/images/' + imlist[i].strip()
filename = src + '/output/' + imlist[i].strip()
try:
im = Image.open(path)
except:
continue
r = rs[i]
c = cs[i]
s = ss[i]
xLeft = int(c - s/2)
yUpper = int(r - s/2)
xRight = int(c + s/2)
yLower = int(r + s/2)
region = im.crop((xLeft, yUpper, xRight, yLower))
region.save(filename)