コード例 #1
0
ファイル: application.py プロジェクト: quantagonista/photo-py
 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
コード例 #2
0
ファイル: tabpicture.py プロジェクト: jgronowski/MSR.APO
    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)
コード例 #3
0
ファイル: plotter_widget.py プロジェクト: Lopi/time_trial
    def __init__(self, parent=None):
        super(PlotterWidget, self).__init__(parent)

        self.layout = QtGui.QGridLayout()
        self.setLayout(self.layout)


        self.plot_settings = PlotSettings()

        #plot_canvas = MyStaticMplCanvas(self.main_widget, width=5, height=4, dpi=100)
        self.plot_canvas = Histogram(self, width=9, height=3, dpi=100, settings=self.plot_settings)
        self.plot_canvas.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.plot_canvas.customContextMenuRequested.connect(self.display_context_menu)



        self.layout.addWidget(self.plot_canvas,0,0)

#        self.plot_settings_button = QtGui.QPushButton("Plot Settings")
        self.plot_settings_dialog = PlotSettingsDialog(plot_settings=self.plot_settings)
        self.plot_settings_dialog.accepted.connect(self.apply_plot_settings)
#        self.plot_settings_button.released.connect(self.plot_settings_dialog.exec)
#        self.layout.addWidget(self.plot_settings_button)
        self.setToolTip("Right click for options.")
コード例 #4
0
 def init_histogram(self):
     self.histogram = Histogram(master=self.master, in_=self)
コード例 #5
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()
コード例 #6
0
ファイル: plotter_widget.py プロジェクト: Lopi/time_trial
class PlotterWidget(QtGui.QWidget):

    plots = []

    def __init__(self, parent=None):
        super(PlotterWidget, self).__init__(parent)

        self.layout = QtGui.QGridLayout()
        self.setLayout(self.layout)


        self.plot_settings = PlotSettings()

        #plot_canvas = MyStaticMplCanvas(self.main_widget, width=5, height=4, dpi=100)
        self.plot_canvas = Histogram(self, width=9, height=3, dpi=100, settings=self.plot_settings)
        self.plot_canvas.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.plot_canvas.customContextMenuRequested.connect(self.display_context_menu)



        self.layout.addWidget(self.plot_canvas,0,0)

#        self.plot_settings_button = QtGui.QPushButton("Plot Settings")
        self.plot_settings_dialog = PlotSettingsDialog(plot_settings=self.plot_settings)
        self.plot_settings_dialog.accepted.connect(self.apply_plot_settings)
#        self.plot_settings_button.released.connect(self.plot_settings_dialog.exec)
#        self.layout.addWidget(self.plot_settings_button)
        self.setToolTip("Right click for options.")

    def display_context_menu(self, pos):
        self. menu = QtGui.QMenu()

        self.edit_action = self.menu.addAction("Edit Plot Settings")
        self.edit_action.triggered.connect(self.plot_settings_dialog.exec)

        self.pdf_action = self.menu.addAction("Save as PDF")
        self.pdf_action.triggered.connect(self.save_as_pdf)

        self.menu.popup(self.mapToGlobal(pos))

    def save_as_pdf(self):
        dialog = QtGui.QFileDialog(self)
        dialog.setDefaultSuffix("pdf")
        dialog.setWindowTitle("Save Figure as PDF...")
        dialog.setAcceptMode(QtGui.QFileDialog.AcceptSave)
        dialog.setFileMode(QtGui.QFileDialog.AnyFile)
        dialog.fileSelected.connect(self.save_as_pdf_to_file)
        dialog.exec()


    def save_as_pdf_to_file(self, filename):
        self.plot_canvas.fig.set_size_inches(9,3)
        pdf = self.plot_canvas.fig.savefig(filename=filename, format="pdf")

    def apply_plot_settings(self):
        self.plot_canvas.axes.set_xlim(self.plot_settings.x_minimum, self.plot_settings.x_maximum)
        self.plot_canvas.axes.set_ylim(self.plot_settings.y_minimum, self.plot_settings.y_maximum)
        self.update_plot()

    def set_data_source_model(self, model):
        self.data_source_model = model

    def add_plot(self, plot):
        self.plots.append(plot)
        self.update_plot()

    def reset(self):
        self.plots.clear()
        self.update_plot()


    def update_plot(self):
        self.plot_canvas.clear()
        for d in self.plots:
            self.plot_canvas.add_plot(d)

        self.plot_canvas.axes.set_xlim(self.plot_settings.x_minimum, self.plot_settings.x_maximum)
        self.plot_canvas.axes.set_ylim(self.plot_settings.y_minimum, self.plot_settings.y_maximum)
        self.plot_canvas.update_figure()
コード例 #7
0
ファイル: matlib_template.py プロジェクト: jgronowski/MSR.APO
    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()