def visualize_pc(points,
                 label_title=None,
                 fig_title='figure',
                 export=False,
                 filename='fv_pc',
                 display=False):
    """ visualizes the point cloud representation as an image
    INPUT:
    OUTPUT:
    """

    f = plt.figure()
    ax = plt.axes()
    f.canvas.set_window_title(fig_title)

    # plt.get_current_fig_manager().window.wm_geometry(str(pos[0]) + "x" + str(pos[128]) + "+"+str(pos[256])+"+"+str(pos[512]))

    image = pc_util.point_cloud_isoview(points[0, :, :])
    image = np.ma.masked_where(image < 0.0005, image)
    cmap = plt.cm.rainbow
    cmap.set_bad(color='white')

    ax.imshow(image, cmap=cmap)
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
    ax.set_title(label_title)
    #ax.axis('off')

    if export:
        plt.savefig(filename + '.pdf',
                    format='pdf',
                    bbox_inches='tight',
                    dpi=1000)
    if display:
        plt.show()
Пример #2
0
def visualize_single_fv_with_pc(fv, points, label_title=None, fig_title='figure', type='minmax', pos=[750,800,0,0], export=False, filename='fv_pc'):
    """ visualizes the fisher vector representation as an image
    INPUT: fv - B X n_gaussians X n_components - fisher vector representation
            points B X n_points X 64
    OUTPUT: None (opens a window and draws the axes)
    """

    n_models = fv.shape[0]
    cmap = "seismic"
    scalefactor = 1
    vmin = -1 * scalefactor
    vmax = 1 * scalefactor

    if type == 'generic':
        derivatives = ["d_pi", "d_mu1", "d_mu2", "d_mu3", "d_sig1", "d_sig2", "d_sig3"]
    elif type == 'minmax':
        derivatives = ["d_pi_max","d_pi_sum",
                       "d_mu1_max", "d_mu2_max", "d_mu3_max",
                       "d_mu1_min", "d_mu2_min", "d_mu3_min",
                       "d_mu1_sum", "d_mu2_sum", "d_mu3_sum",
                       "d_sig1_max", "d_sig2_max", "d_sig3_max",
                       "d_sig1_min", "d_sig2_min", "d_sig3_min",
                       "d_sig1_sum", "d_sig2_sum", "d_sig3_sum"]
    else:
        derivatives = []
    tick_marks = np.arange(len(derivatives))

    f = plt.figure()
    f.canvas.set_window_title(fig_title)
    ax1 = plt.axes([0.05, 0.5, 0.45, 0.2])
    ax2 = plt.axes([0.5, 0.5, 0.3, 0.3])
    #plt.get_current_fig_manager().window.wm_geometry(str(pos[0]) + "x" + str(pos[128]) + "+"+str(pos[256])+"+"+str(pos[512]))

    #for i in range(n_models):
    ax1.imshow(fv[0,:,:], cmap=cmap, vmin=vmin, vmax=vmax)
    ax1.set_title(label_title)
    ax1.set_xticks([])
    ax1.set_yticks([])
    # ax[i, 0].axis('off')
    ax2.set_yticks(tick_marks)
    ax2.set_yticklabels(derivatives)
    ax2.tick_params(labelsize=3)

    #image = pc_util.point_cloud_three_views(points[i, :, :])
    image = pc_util.point_cloud_isoview(points[0,:,:])
    image = np.ma.masked_where(image < 0.0005, image)
    cmap = plt.cm.rainbow
    cmap.set_bad(color='white')

    ax2.imshow(image, cmap=cmap)
    ax2.get_xaxis().set_visible(False)
    ax2.get_yaxis().set_visible(False)
    #fig.patch.set_visible(False)
    ax2.axis('off')


    if export:
        plt.savefig(filename + '.pdf', format='pdf', bbox_inches='tight', dpi=1000)