def __init__(self, name, alnr, i=0): self.name = name self.i = i self.im_stack = [None] * alnr.num_subject self.im_nobg_stack = [None] * alnr.num_subject for j, im in enumerate(alnr.subject_stack): im_centered = contour.pad_image_cnt(im, None) if j > 0: opt = alnr.dSS[j] print j, opt[0], opt[1], opt[2], np.rad2deg(opt[2]) prev_centroid = contour.get_centroid(self.im_nobg_stack[j - 1]) self.im_nobg_stack[j] = contour.transform_cnt( im_centered, None, opt, anchor_im="centroid", anchor_bg=prev_centroid ) opacity = 0.3 self.im_stack[j] = cv2.addWeighted( self.im_nobg_stack[j - 1], opacity, self.im_nobg_stack[j], 1 - opacity, 0 ) else: prev_centroid = "center" self.im_stack[j] = im_centered self.im_nobg_stack[j] = im_centered cv2.circle(self.im_nobg_stack[j], contour.get_centroid(self.im_nobg_stack[j]), 5, 0)
def __init__(self, name, alnr, i=0, overlay=True): self.name = name self.i = i self.im_stack = [None] * alnr.num_subject for j, im in enumerate(alnr.subject_stack): opt = alnr.dSA[j] print j, opt[0], opt[1], opt[2], np.rad2deg(opt[2]) allen_im = alnr.allen_stack[alnr.allen_match_id_stack_best[j]] allen_centroid = contour.get_centroid(allen_im) # im_centered = contour.pad_image_cnt(im) # im_t = contour.transform_cnt(im_centered, None, opt, # anchor_im='centroid', anchor_bg=allen_centroid) im_t = contour.transform_cnt(im, None, opt, anchor_im="centroid", anchor_bg=allen_centroid) if overlay: opacity = 0.3 self.im_stack[j] = cv2.addWeighted(allen_im, opacity, im_t, 1 - opacity, 0) else: self.im_stack[j] = im_t