def __init__(self, parent, root, nrows, ncolumns): assert nrows >= 2 and ncolumns >= 1 uiutils.BaseFrame.__init__( self, parent, root, nrows, ncolumns, initial_status='Welcome to Autostitch UI' ) self.imageCanvas = uiutils.ImageWidget(self) self.imageCanvas.grid( row=nrows - 2, columnspan=ncolumns, sticky=tk.N + tk.S + tk.E + tk.W, ) self.grid_rowconfigure(nrows - 2, weight=1)
def __init__(self, parent, root): uiutils.BaseFrame.__init__(self, parent, root, 3, 1) self.config(highlightthickness=1, highlightbackground="black") tk.Button(self, text='Load Image', command=self.load_img).grid(row=0, column=0, sticky=tk.N) self.image_widget = uiutils.ImageWidget(self) self.image_widget.grid(row=1, column=0, sticky=tk.NSEW) self.rowconfigure(0, weight=0) self.rowconfigure(1, weight=1) tk.Button(self, text='Save Image', command=self.save_image).grid(row=2, column=0, sticky=tk.W + tk.E)
def __init__(self, parent, root, receiver, tab_num, config_file=None): uiutils.BaseFrame.__init__(self, parent, root, 7, 4) tk.Label(self, text='Left Image Sigma:').grid(row=0, column=0, sticky=tk.E) self.left_sigma_slider = tk.Scale(self, from_=0.1, to=10, resolution=0.1, orient=tk.HORIZONTAL) self.left_sigma_slider.grid(row=0, column=1, sticky=tk.E + tk.W) self.left_sigma_slider.bind('<ButtonRelease-1>', self.update_hybrid) tk.Label(self, text='Right Image Sigma:').grid(row=0, column=2, sticky=tk.E) self.right_sigma_slider = tk.Scale(self, from_=0.1, to=10, resolution=0.1, orient=tk.HORIZONTAL) self.right_sigma_slider.grid(row=0, column=3, sticky=tk.E + tk.W) self.right_sigma_slider.bind('<ButtonRelease-1>', self.update_hybrid) tk.Label(self, text='Left Image Kernel Size:').grid(row=1, column=0, sticky=tk.E) self.left_size_slider = tk.Scale(self, from_=3, to=25, resolution=1, orient=tk.HORIZONTAL) self.left_size_slider.grid(row=1, column=1, sticky=tk.E + tk.W) self.left_size_slider.bind('<ButtonRelease-1>', self.update_hybrid) tk.Label(self, text='Right Image Kernel Size:').grid(row=1, column=2, sticky=tk.E) self.right_size_slider = tk.Scale(self, from_=3, to=25, resolution=1, orient=tk.HORIZONTAL) self.right_size_slider.grid(row=1, column=3, sticky=tk.E + tk.W) self.right_size_slider.bind('<ButtonRelease-1>', self.update_hybrid) self.left_high_low_indicator = tk.StringVar() self.left_high_low_indicator.set('low') tk.Radiobutton(self, text='High Pass', variable=self.left_high_low_indicator, value='high').grid(row=2, column=0, sticky=tk.W) tk.Radiobutton(self, text='Low Pass', variable=self.left_high_low_indicator, value='low').grid(row=2, column=1, sticky=tk.W) self.left_high_low_indicator.trace('w', self.update_hybrid) self.right_high_low_indicator = tk.StringVar() self.right_high_low_indicator.set('high') tk.Radiobutton(self, text='High Pass', variable=self.right_high_low_indicator, value='high').grid(row=2, column=2, sticky=tk.W) tk.Radiobutton(self, text='Low Pass', variable=self.right_high_low_indicator, value='low').grid(row=2, column=3, sticky=tk.W) self.right_high_low_indicator.trace('w', self.update_hybrid) tk.Label(self, text='Mix-in Ratio (0=left, 1=right):').grid(row=3, column=0, sticky=tk.E) self.mixin_slider = tk.Scale(self, from_=0.0, to=1.0, resolution=0.05, orient=tk.HORIZONTAL) self.mixin_slider.grid(row=3, column=1, sticky=tk.E + tk.W) self.mixin_slider.set(0.5) self.mixin_slider.bind('<ButtonRelease-1>', self.update_hybrid) self.view_grayscale = tk.IntVar() tk.Checkbutton(self, text='View Result in Grayscale', variable=self.view_grayscale).grid(row=3, column=2, sticky=tk.E) self.view_grayscale.trace('w', self.change_view_color_space) tk.Button(self, text='Save Configuration', command=self.save_conf).grid(row=4, column=0, sticky=tk.W + tk.E) tk.Button(self, text='Load Configuration', command=self.load_conf).grid(row=4, column=1, sticky=tk.W + tk.E) self.save_grayscale = tk.IntVar() tk.Checkbutton(self, text='Save Result in Grayscale', variable=self.save_grayscale).grid(row=4, column=2, sticky=tk.E) tk.Button(self, text='Save Hybrid Image', command=self.save_image).grid(row=4, column=3, sticky=tk.W + tk.E) self.image_widget = uiutils.ImageWidget(self) self.image_widget.grid(row=5, column=0, columnspan=4, sticky=tk.NSEW) self.grid_rowconfigure(5, weight=1) self.left_image = None self.right_image = None self.tab_num = tab_num if config_file is not None: self.load_conf(config_file) receiver.set_receiver(self.set_images_and_mapping)