Пример #1
0
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])
Пример #2
0
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])