tAdded preview panel, it's in a separate window, however - cross-stitch - inter… | |
git clone git://src.adamsgaard.dk/cross-stitch | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
commit df5c2e0a88206408ff029ff93dfe729a8919a025 | |
parent d37e43fe9fd4de97dbbe3164bb52d209bb210ab4 | |
Author: Anders Damsgaard <[email protected]> | |
Date: Fri, 14 Feb 2014 20:34:05 +0100 | |
Added preview panel, it's in a separate window, however | |
Diffstat: | |
M cross-stitch.py | 51 +++++++++++++++++++++++++----… | |
1 file changed, 42 insertions(+), 9 deletions(-) | |
--- | |
diff --git a/cross-stitch.py b/cross-stitch.py | |
t@@ -5,15 +5,20 @@ import argparse | |
import scipy.ndimage | |
import scipy.misc | |
import scipy.cluster | |
-import numpy as np | |
+import numpy | |
import matplotlib | |
-import matplotlib.pyplot as plt | |
+matplotlib.use('WXAgg') | |
+import matplotlib.figure | |
+import matplotlib.backends | |
+import matplotlib.backends.backend_wxagg | |
+#import matplotlib.pyplot as plt | |
import wx | |
class CrossStitch: | |
def __init__(self): | |
- pass | |
+ self.img = numpy.zeros(3) | |
+ self.read_image("fiskeren.jpg") | |
def read_image(self, infile): | |
try: | |
t@@ -38,25 +43,54 @@ class CrossStitch: | |
self.img = tmp.reshape(self.img.shape[0], self.img.shape[1], 3) | |
def save_image(self, filename): | |
- fig = plt.figure() | |
- imgplot = plt.imshow(self.img) | |
+ fig = matplotlib.pyplot.figure() | |
+ imgplot = matplotlib.pyplot.imshow(self.img) | |
imgplot.set_interpolation('nearest') | |
- plt.grid() | |
- plt.savefig(filename) | |
+ matplotlib.pyplot.grid() | |
+ matplotlib.pyplot.savefig(filename) | |
+ | |
+ def image(self): | |
+ return self.img | |
+ | |
+class CanvasPanel(wx.Panel): | |
+ | |
+ def __init__(self, parent, cs): | |
+ wx.Panel.__init__(self, parent) | |
+ self.figure = matplotlib.figure.Figure() | |
+ self.axes = self.figure.add_subplot(111) | |
+ self.canvas = matplotlib.backends.backend_wxagg.FigureCanvasWxAgg(\ | |
+ self, -1, self.figure) | |
+ self.sizer = wx.BoxSizer(wx.VERTICAL) | |
+ self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW) | |
+ self.SetSizer(self.sizer) | |
+ self.Fit() | |
+ | |
+ def set_csobj(self, csobj): | |
+ self.cs = csobj | |
+ | |
+ def draw(self): | |
+ self.axes.imshow(self.cs.image()) | |
+ self.axes.grid() | |
class MainScreen(wx.Frame): | |
def __init__(self, *args, **kwargs): | |
super(MainScreen, self).__init__(*args, **kwargs) | |
- self.InitUI() | |
self.cs = CrossStitch() | |
+ self.InitUI() | |
def InitUI(self): | |
self.InitMenu() | |
#self.InitToolbar() | |
+ preview = wx.Frame(self) | |
+ panel = CanvasPanel(preview, 'preview') | |
+ panel.set_csobj(self.cs) | |
+ panel.draw() | |
+ preview.Show() | |
+ | |
self.SetSize((600, 400)) | |
self.SetTitle('Main menu') | |
self.Centre() | |
t@@ -96,7 +130,6 @@ class MainScreen(wx.Frame): | |
self.Bind(wx.EVT_TOOL, self.OnQuit, qtool) | |
toolbar.Realize() | |
- | |
def OnQuit(self, e): |