Beispiel #1
0
 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
Beispiel #2
0
 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
Beispiel #3
0
 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
Beispiel #4
0
 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