def plotCameraRig(baselines, fno=1, clearFigure=True, title=""): f = pl.figure(fno) if clearFigure: f.clf() f.suptitle(title) #convet DVs to trafo temp = list() for baseline in baselines: temp.append(sm.Transformation(baseline.T())) baselines = temp #convert baselines to camera frames in coords of first camera camera_frames = list() camera_frames.append(sm.Transformation()) #first cam for bidx, baseline in enumerate(baselines): camera_frames.append(camera_frames[bidx] * baseline.inverse()) #get the of the coord system (half the shortest baseline) sizes = list() for baseline in baselines: sizes.append(np.linalg.norm(baseline.t())) size = 0.5 * np.min(sizes) #plot each frame in coordinates of first camera a3d = f.add_subplot(111, projection='3d') for camera_frame in camera_frames: sm.plotCoordinateFrame(a3d, camera_frame.T(), size=size) #axis equal box_sizes = list() for camera_frame in camera_frames: box_sizes.append(np.linalg.norm(camera_frame.t())) box_size = 1.25 * np.max(box_sizes) + size a3d.auto_scale_xyz([-box_size, box_size], [-box_size, box_size], [-box_size, box_size])
def plotCameraRig(baselines, fno=1, clearFigure=True, title=""): f = pl.figure(fno) if clearFigure: f.clf() f.suptitle(title) #convet DVs to trafo temp=list() for baseline in baselines: temp.append(sm.Transformation(baseline.T())) baselines=temp #convert baselines to camera frames in coords of first camera camera_frames=list() camera_frames.append(sm.Transformation()) #first cam for bidx, baseline in enumerate(baselines): camera_frames.append( camera_frames[bidx]*baseline.inverse() ) #get the of the coord system (half the shortest baseline) sizes=list() for baseline in baselines: sizes.append( np.linalg.norm(baseline.t()) ) size=0.5*np.min(sizes) #plot each frame in coordinates of first camera a3d = f.add_subplot(111, projection='3d') for camera_frame in camera_frames: sm.plotCoordinateFrame(a3d, camera_frame.T(), size=size) #axis equal box_sizes=list() for camera_frame in camera_frames: box_sizes.append( np.linalg.norm(camera_frame.t()) ) box_size=1.25*np.max(box_sizes)+size a3d.auto_scale_xyz([-box_size, box_size], [-box_size, box_size], [-box_size, box_size])