def preparePlot(shapeModeler): global sliders, mainPlot, fig fig, ax = plt.subplots(); whiteSpace = 0.15 + numParams*0.05; plt.subplots_adjust( bottom=whiteSpace); plt.axis('equal'); #plot of initial shape params = np.zeros((numParams,1)); shape = shapeModeler.makeShape(params); shape = ShapeModeler.normaliseShape(shape); numPointsInShape = len(shape)/2; x_shape = shape[0:numPointsInShape]; y_shape = shape[numPointsInShape:]; mainPlot, = plt.plot(x_shape, -y_shape); plt.axis([-1, 1, -1, 1],autoscale_on=False, aspect='equal'); #add sliders to modify parameter values parameterVariances = shapeModeler.getParameterVariances(); sliders = [0]*numParams; for i in range(numParams): slider = Slider(plt.axes([0.25, 0.1+0.05*(numParams-i-1), 0.65, 0.03], axisbg=axcolor), 'Parameter '+str(i+1), -5*parameterVariances[i], 5*parameterVariances[i], valinit=0); slider.on_changed(update); sliders[i] = slider; resetax = plt.axes([0.8, 0.025, 0.1, 0.04]) button = Button(resetax, 'Reset', color=axcolor, hovercolor='0.975') button.on_clicked(reset) plt.show()
def param_gui(letter_name, shapeModeler): global sliders, mainPlot, fig, pca_params fig, ax = plt.subplots() whiteSpace = 0.15 + num_params*0.05 plt.subplots_adjust( bottom=whiteSpace) plt.axis('equal') #plot of initial shape params = np.zeros((num_params,1)) shape = shapeModeler.makeShape(params) shape = ShapeModeler.normaliseShape(shape) numPointsInShape = len(shape)/2 x_shape = shape[0:numPointsInShape] y_shape = shape[numPointsInShape:] mainPlot, = plt.plot(x_shape, -y_shape) plt.axis([-1, 1, -1, 1],autoscale_on=False, aspect='equal') plt.title(letter_name) #add sliders to modify parameter values parameterVariances = shapeModeler.getParameterVariances() sliders = [0]*num_params for i in range(num_params): slider = Slider(plt.axes([0.25, 0.1+0.05*(num_params-i-1), 0.65, 0.03], axisbg=axcolor), 'Parameter '+str(i+1), -5*parameterVariances[i], 5*parameterVariances[i], valinit=0) slider.on_changed(partial(update, shapeModeler)) sliders[i] = slider resetax = plt.axes([0.8, 0.025, 0.1, 0.04]) button = Button(resetax, 'Reset', color=axcolor, hovercolor='0.975') button.on_clicked(reset) plt.show() return pca_params
def update(val): global sliders , mainPlot, fig params = np.zeros((numParams,1)); for i in range(numParams): params[i] = sliders[i].val; shape = shapeModeler.makeShape(params); shape = ShapeModeler.normaliseShape(shape); numPointsInShape = len(shape)/2; x_shape = shape[0:numPointsInShape]; y_shape = shape[numPointsInShape:]; mainPlot.set_data(x_shape, -y_shape); fig.canvas.draw_idle();
def update(val): global sliders, mainPlot, fig params = np.zeros((numParams, 1)) for i in range(numParams): params[i] = sliders[i].val shape = shapeModeler.makeShape(params) shape = ShapeModeler.normaliseShape(shape) numPointsInShape = len(shape) / 2 x_shape = shape[0:numPointsInShape] y_shape = shape[numPointsInShape:] mainPlot.set_data(x_shape, -y_shape) fig.canvas.draw_idle()
def update(shapeModeler, val): global sliders , mainPlot, fig, pca_params pca_params = np.zeros((num_params, 1)) for i in range(num_params): pca_params[i] = sliders[i].val shape = shapeModeler.makeShape(pca_params) shape = ShapeModeler.normaliseShape(shape) numPointsInShape = len(shape)/2 x_shape = shape[0:numPointsInShape] y_shape = shape[numPointsInShape:] mainPlot.set_data(x_shape, -y_shape) fig.canvas.draw_idle()
def preparePlot(shapeModeler): global sliders, mainPlot, fig fig, ax = plt.subplots() whiteSpace = 0.15 + numParams * 0.05 plt.subplots_adjust(bottom=whiteSpace) plt.axis('equal') #plot of initial shape params = np.zeros((numParams, 1)) shape = shapeModeler.makeShape(params) shape = ShapeModeler.normaliseShape(shape) numPointsInShape = len(shape) / 2 x_shape = shape[0:numPointsInShape] y_shape = shape[numPointsInShape:] mainPlot, = plt.plot(x_shape, -y_shape) plt.axis([-1, 1, -1, 1], autoscale_on=False, aspect='equal') #add sliders to modify parameter values parameterVariances = shapeModeler.getParameterVariances() sliders = [0] * numParams for i in range(numParams): slider = Slider(plt.axes( [0.25, 0.1 + 0.05 * (numParams - i - 1), 0.65, 0.03], axisbg=axcolor), 'Parameter ' + str(i + 1), -5 * parameterVariances[i], 5 * parameterVariances[i], valinit=0) slider.on_changed(update) sliders[i] = slider resetax = plt.axes([0.8, 0.025, 0.1, 0.04]) button = Button(resetax, 'Reset', color=axcolor, hovercolor='0.975') button.on_clicked(reset) plt.show()