def get_scaled_translated_img_bb(self, name, bb):
im = imread(name)
img = cv2.cvtColor(im, cv2.COLOR_RGB2BGR)
h0, w0, _ = self.img_size
wc, hc = (bb[0] + bb[2]) / 2, (bb[1] + bb[3]) / 2
face_width = (bb[3] - bb[1]) / 2
# Old approach: scale and then translate
res, new_face_width, shc, swc = self.compute_scale_factor(
img, face_width, hc, wc)
thc, twc = self.compute_translation(new_face_width, shc, swc)
# New approach: translate and then scale
# thc, twc = self.compute_translation(face_width, hc, wc,
# min_pad=self.MIN_FACE_SIZE + 10)
# high_scale = np.min([thc - 5, h0 - thc - 5, twc - 5, w0 - twc - 5])
# res, new_face_width, shc, swc = self.compute_scale_factor(
# img, face_width, hc, wc,
# high_scale=high_scale, low_scale=None)
out_bgr, new_bb = self.copy_source_to_target(res, new_face_width,
shc, swc, thc, twc)
log = "%.1f,%.1f,%.0f\n" % (
(new_bb[1] + new_bb[3]) / 2, (new_bb[0] + new_bb[2]) / 2, new_face_width * 2)
with open('aug.csv', mode='a', buffering=0) as f:
f.write(log)
# cv2.rectangle(out_bgr, (int(new_bb[0]), int(new_bb[1])), (int(new_bb[2]), int(new_bb[3])),
# (255, 255, 0), thickness=4)
# cv2.imwrite("%d.jpg" % os.getpid(), out_bgr)
# sys.exit(0)
out = cv2.cvtColor(out_bgr, cv2.COLOR_BGR2RGB)
return out, new_bb
评论列表
文章目录