# -*- coding: utf-8 -*-
# 3.0
#
###############################################################
#### Copyright ©2013 by Marek Kocinski. All rights reserved ###
###############################################################
import wx
import numpy as np
from scipy import misc
from matplotlib.figure import Figure
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigCanvas
class imageShow(wx.Frame):
def __init__(self,parent):
self.img = misc.ascent()
wx.Frame.__init__(self, parent, title="Lena", size=(wx.GetClientDisplayRect()[2], wx.GetClientDisplayRect()[3]) )
self.CreatePanel()
self.DrawFigure()
def CreatePanel(self):
self.fig = Figure()
self.fig.subplots_adjust(left=0.01, right=0.99, top=0.99, bottom=0.01)
self.canvas = FigCanvas(self, -1, self.fig)
self.axes = self.fig.add_subplot(111)
self.axes.get_xaxis().set_visible(False)
self.axes.get_yaxis().set_visible(False)
### PANEL 1 ###
self.panel1 = wx.Panel(self,-1)
self.panel1.SetBackgroundColour('Orange')
### panel 1 - widgets
self.bt1 = wx.Button(self.panel1, -1, "bt 1 - To Do")
self.bt2 = wx.Button(self.panel1, -1, "bt 2 - To Do")
self.sl1 = wx.Slider(self.panel1, -1, value=125, minValue=0, maxValue=255)
self.sl2 = wx.Slider(self.panel1, -1, value=500, minValue=0, maxValue=1000)
### panel 1 - Bind Functions
### TO DO!!!
### panel 1 - sizers
### panel 1 - slider sizer
self.panel1_slider_sizer = wx.BoxSizer(wx.VERTICAL)
self.panel1_slider_sizer.Add(self.sl1, 1, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, border=1)
self.panel1_slider_sizer.Add(self.sl2, 1, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, border=1)
### panel 1 - main sizer
self.panel1_main_sizer = wx.BoxSizer(wx.HORIZONTAL)
self.panel1_main_sizer.Add(self.bt1, 1, wx.EXPAND | wx.CENTER, border=1)
self.panel1_main_sizer.Add(self.bt2, 1, wx.CENTER, border=1)
self.panel1_main_sizer.Add(self.panel1_slider_sizer, 1, wx.EXPAND | wx.CENTER, border=1)
### set main sizer
self.panel1.SetSizer(self.panel1_main_sizer)
### PANEL 2 ###
self.panel2 = wx.Panel(self,-1)
self.panel2.SetBackgroundColour('Red')
### main sizer
self.main_sizer = wx.BoxSizer(wx.VERTICAL) #main siezer
self.main_sizer.Add(self.canvas, 2, wx.EXPAND | wx.ALL, 1)
self.main_sizer.Add(self.panel1, 1, wx.EXPAND | wx.ALL, 1)
self.main_sizer.Add(self.panel2, 1, wx.EXPAND | wx.ALL, 1)
self.SetSizer(self.main_sizer)
self.SetAutoLayout(True)
self.Fit()
def DrawFigure(self, minn = 0, maxx = 255):
self.axes.clear()
self.imshow = self.axes.imshow(self.img.clip(minn,maxx), cmap="gray")
self.canvas.draw()
app = wx.App(False)
img = imageShow(None)
img.Show()
app.MainLoop()