def segment(self,img,box,landmarks):
left,top,right,bottom = box
avglr = int((left + right) / 2)
avgtb = int((top + bottom) / 2)
r_cir = int(max((right - left),(bottom - top) )/ 2)
if isinstance(self.margin,int):
margin = self.margin
elif isinstance(self.margin,float):
margin = r_cir * self.margin
bb = np.zeros(4, dtype=np.int32)
bb[0] = np.maximum(left-margin/2, 0)
bb[1] = np.maximum(top-margin/2, 0)
bb[2] = np.minimum(right+margin/2, img.shape[1])
bb[3] = np.minimum(bottom+margin/2, img.shape[0])
cropped = img[bb[1]:bb[3],bb[0]:bb[2],:]
scaled = misc.imresize(cropped, (self.img_size, self.img_size), interp='bilinear')
return [('expand-align',scaled)]
评论列表
文章目录