Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)