def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.title('PhotoPY')
     self.width = self.winfo_screenwidth() - 50
     self.height = self.winfo_screenheight() - 50
     self.geometry('{w}x{h}'.format(w=self.width, h=self.height))
     self.resizable(False, False)
     self.drawing_frame = DrawingFrame(master=self)
     self.histogram = Histogram(master=self)
     self.history_panel = None
Exemple #2
0
    def __init__(self, tab_frame: tk.Frame, main_window: tk.Tk,
                 name: tk.StringVar):
        self.tab_frame = tab_frame
        self.main_window = main_window
        """
        Master Key must match menu_command _current tab politics
        """
        ###############
        # vars
        ###############
        self.id = tab_frame._w
        TabPicture.gallery[self.id] = self
        self.name = name
        self.tkImage = None
        res = int(app_config.main_window_resolution[:int(
            app_config.main_window_resolution.index('x'))]) / 2

        ###############
        # Panels
        ###############
        self.pann = tk.PanedWindow(self.tab_frame,
                                   handlesize=10,
                                   showhandle=True,
                                   handlepad=12,
                                   sashwidth=3)
        self.pann.pack(side=tk.TOP, fill=tk.BOTH, expand=True)

        self.image_frame = tk.Frame(self.pann)
        self.image_frame.pack(expand=True, fill=tk.BOTH)
        self.pann.add(self.image_frame, width=res, minsize=100)
        self.panel_hist = tk.Frame(self.pann)
        self.panel_hist.pack(expand=True, fill=tk.BOTH)
        self.pann.add(self.panel_hist, width=res, minsize=100)

        ###############
        # Class
        ###############
        self.vision = Vision()
        self.histogram = Histogram(self.panel_hist)
        self.image_canvas = ImageFrame(self.image_frame)
Exemple #3
0
 def init_histogram(self):
     self.histogram = Histogram(master=self.master, in_=self)
Exemple #4
0
    def __init__(self, name, tab: TabPicture):
        self.window = tk.Toplevel()
        self.window.title(name)
        self.window.geometry(app_config.operations_window_resolution)

        self.tab = tab
        self.size = (300, 700)
        self.tkImage = Vision.resize_tk_image(self.tab.vision.cvImage.image, self.size)
        self.tkImage_tmp = None

        self.body = tk.Frame(master=self.window)

        self.body.pack(fill=tk.BOTH, expand=True)

        self.buttons = tk.Frame(master=self.body)
        self.buttons.pack(side=tk.TOP, fill=tk.X)

        self.plugins = tk.Frame(master=self.body)
        self.plugins.pack(after=self.buttons, side=tk.TOP, fill=tk.X)

        self.panels = tk.Frame(master=self.body)
        self.panels.pack(after=self.plugins, side=tk.TOP, fill=tk.BOTH, expand=True)

        self.status_message = tk.StringVar()
        self.status_message.set('*')
        self.status_bar = tk.Label(self.body, textvariable=self.status_message, bd=1, relief=tk.SUNKEN, anchor='w')
        self.status_bar.pack(side=tk.BOTTOM, fill=tk.X)

        ###############
        # Panels
        ###############
        self.outer_pan = tk.PanedWindow(self.panels,
                                        handlesize=10,
                                        showhandle=True,
                                        handlepad=12,
                                        sashwidth=3)
        self.outer_pan.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        self.left_pan = tk.PanedWindow(self.outer_pan,
                                       handlesize=10,
                                       showhandle=True,
                                       handlepad=12,
                                       sashwidth=3,
                                       orient=tk.VERTICAL)
        self.left_pan.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        self.outer_pan.add(self.left_pan, minsize=100)



        lf_original = tk.LabelFrame(master=self.panels, text='Original')
        lf_original.pack(side=tk.LEFT, expand=True, fill=tk.BOTH)
        self.left_pan.add(lf_original, minsize=100)
        self.panel = tk.Label(master=lf_original, image=self.tkImage)
        self.panel.pack()

        lf_equalised = tk.LabelFrame(master=self.panels, text='Equalised')
        lf_equalised.pack(side=tk.LEFT, expand=True, fill=tk.BOTH)
        self.left_pan.add(lf_equalised, minsize=100)
        self.panel_tmp = tk.Label(master=lf_equalised)
        self.panel_tmp.pack()

        self.panel_hist = tk.Frame(master=self.panels)
        self.panel_hist.pack(side=tk.RIGHT, expand=True, fill=tk.BOTH)
        self.outer_pan.add(self.panel_hist, minsize=100)
        self.histogram = Histogram(self.panel_hist)

        self.widget_buttons()

        self.control_plugin()
        self.refresh()

        self.window.mainloop()
    def __init__(self, name, tab: TabPicture):
        self.window = tk.Toplevel()
        self.window.title(name)
        self.window.geometry(app_config.operations_window_resolution)

        self.tab_bg = tab
        self.vision_result = computer_vision.Vision()
        self.vision_result.cvImage.image = copy.copy(
            self.tab_bg.vision.cvImage.image)
        self.vision_result.cvImage_tmp.image = copy.copy(
            self.tab_bg.vision.cvImage_tmp.image)
        self.size = (300, 300)
        self.tk_img_background = None

        self.operation_name = tk.StringVar()
        self.kernel_size = tk.StringVar()
        self.border_type = tk.StringVar()

        self.border_type.set(list(computer_vision.borderType.keys())[0])

        self.body = tk.Frame(master=self.window)

        self.body.pack(fill=tk.BOTH, expand=True)

        self.buttons = tk.Frame(master=self.body)
        self.buttons.pack(side=tk.TOP, fill=tk.X)

        self.plugins = tk.Frame(master=self.body)
        self.plugins.pack(after=self.buttons, side=tk.TOP, fill=tk.X)

        self.panels = tk.Frame(master=self.body)
        self.panels.pack(after=self.plugins,
                         side=tk.TOP,
                         fill=tk.BOTH,
                         expand=True)

        self.status_message = tk.StringVar()
        self.status_message.set('*')
        self.status_bar = tk.Label(self.body,
                                   textvariable=self.status_message,
                                   bd=1,
                                   relief=tk.SUNKEN,
                                   anchor='w')
        self.status_bar.pack(side=tk.BOTTOM, fill=tk.X)

        ###############
        # Panels
        ###############
        self.outer_pan = tk.PanedWindow(self.panels,
                                        handlesize=10,
                                        showhandle=True,
                                        handlepad=12,
                                        sashwidth=3)
        self.outer_pan.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        self.left_panned_window = tk.PanedWindow(self.outer_pan,
                                                 handlesize=10,
                                                 showhandle=True,
                                                 handlepad=12,
                                                 sashwidth=3,
                                                 orient=tk.VERTICAL)
        self.left_panned_window.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        self.outer_pan.add(self.left_panned_window, minsize=100)

        # todo switch self.panels to self.kernel_panel
        lf_top = tk.LabelFrame(master=self.panels, text='Image')
        lf_top.pack()
        self.left_panned_window.add(lf_top, minsize=100)

        self.panel_back = tk.Label(master=lf_top)
        self.panel_back.pack()

        self.options_panned_frame = tk.LabelFrame(master=self.panels,
                                                  text='Filter')
        self.options_panned_frame.pack()
        self.left_panned_window.add(self.options_panned_frame, minsize=100)

        self.lf_result = tk.LabelFrame(master=self.panels, text='Result')
        self.lf_result.pack()
        self.outer_pan.add(self.lf_result, minsize=100)

        self.result_tabs = ttk.Notebook(self.lf_result)
        self.result_tabs.pack(side=tk.TOP, fill=tk.BOTH, expand=True)

        self.img_frame = tk.Frame(self.result_tabs)
        self.img_frame.pack(fill=tk.BOTH, expand=1)
        self.result_tabs.add(self.img_frame, text="Resulat Image")
        self.hist_frame = tk.Frame(self.result_tabs)
        self.hist_frame.pack(fill=tk.BOTH, expand=1)
        self.result_tabs.add(self.hist_frame, text="Hiastogram")

        self.image_canvas = ImageFrame(self.img_frame)
        self.histogram = Histogram(self.hist_frame)

        self.widget_buttons()

        self.refresh_panel_img()