def get_mean_displacement(self, index, method='box', box_min=BOX_MIN, box_max=BOX_MAX): mat = self.get_motion_affine(index) mat = Transform_Affine(mat) if method == 'box': b = box_min B = box_max corners = numpy.asarray([[b[0], b[1], b[2], 1], [B[0], b[1], b[2], 1], [b[0], B[1], b[2], 1], [B[0], B[1], b[2], 1], [b[0], b[1], B[2], 1], [B[0], b[1], B[2], 1], [b[0], B[1], B[2], 1], [B[0], B[1], B[2], 1]]).transpose() corners_t = mat.left_multiply(corners) corners_t[3, :] = 0 corners[3, :] = 0 #print "CORNERS: ", corners_t #dist = numpy.sqrt(((corners-corners_t)**2).sum(0)) dist = (corners - corners_t).sum(0) mean_displ = numpy.mean(dist) else: raise "Method to compute mean displacement is unknown. " return mean_displ
def get_mean_displacement(self, index, method='box', box_min=BOX_MIN, box_max=BOX_MAX): mat = self.get_motion_affine(index) mat = Transform_Affine(mat) if method=='box': b = box_min B = box_max corners = numpy.asarray([ [b[0],b[1],b[2],1], [B[0],b[1],b[2],1], [b[0],B[1],b[2],1], [B[0],B[1],b[2],1], [b[0],b[1],B[2],1], [B[0],b[1],B[2],1], [b[0],B[1],B[2],1], [B[0],B[1],B[2],1] ]).transpose() corners_t = mat.left_multiply(corners) corners_t[3,:]=0 corners[3,:] =0 #print "CORNERS: ", corners_t #dist = numpy.sqrt(((corners-corners_t)**2).sum(0)) dist = (corners-corners_t).sum(0) mean_displ = numpy.mean(dist) else: raise "Method to compute mean displacement is unknown. " return mean_displ
def get_mean_displacement_variation_since_time(self, index_new, index_old, method='box', box_min=BOX_MIN, box_max=BOX_MAX): mat = self.get_motion_affine(index_new) mat0 = self.get_motion_affine(index_old) mat = Transform_Affine(mat) mat0 = Transform_Affine(mat0) if method=='box': b = box_min B = box_max corners = numpy.asarray([ [b[0],b[1],b[2],1], [B[0],b[1],b[2],1], [b[0],B[1],b[2],1], [B[0],B[1],b[2],1], [b[0],b[1],B[2],1], [B[0],b[1],B[2],1], [b[0],B[1],B[2],1], [B[0],B[1],B[2],1] ]).transpose() corners_t = mat.left_multiply(corners) corners_t[3,:]=0 corners_t0 = mat0.left_multiply(corners) corners_t0[3,:]=0 dist = numpy.sqrt(((corners_t-corners_t0)**2).sum(0)) #dist = (corners-corners_t).sum(0) mean_displ = numpy.mean(dist) else: raise "Method to compute mean displacement is unknown. " return mean_displ
def get_mean_displacement_variation_since_time(self, index_new, index_old, method='box', box_min=BOX_MIN, box_max=BOX_MAX): mat = self.get_motion_affine(index_new) mat0 = self.get_motion_affine(index_old) mat = Transform_Affine(mat) mat0 = Transform_Affine(mat0) if method == 'box': b = box_min B = box_max corners = numpy.asarray([[b[0], b[1], b[2], 1], [B[0], b[1], b[2], 1], [b[0], B[1], b[2], 1], [B[0], B[1], b[2], 1], [b[0], b[1], B[2], 1], [B[0], b[1], B[2], 1], [b[0], B[1], B[2], 1], [B[0], B[1], B[2], 1]]).transpose() corners_t = mat.left_multiply(corners) corners_t[3, :] = 0 corners_t0 = mat0.left_multiply(corners) corners_t0[3, :] = 0 dist = numpy.sqrt(((corners_t - corners_t0)**2).sum(0)) #dist = (corners-corners_t).sum(0) mean_displ = numpy.mean(dist) else: raise "Method to compute mean displacement is unknown. " return mean_displ