def __init__(self, parent=None, title='', dstack=None, log=None, filename=None, filedir=""): wx.Frame.__init__(self, parent, -1, title) self.ds = dstack self.log = log self.saved = False self.filedir = filedir if (dstack is None): if (filename is None): fdialog = wx.FileDialog(None, 'Please select Data Stack to open ...', wildcard='*.kdf', style=wx.FD_OPEN | wx.HIDE_READONLY) succ = fdialog.ShowModal() if (succ == wx.ID_OK): self.ds = example.CDataStack(fdialog.GetPath()) self.SetTitle(fdialog.GetFilename()) self.saved = True #fn = else: self.ds = example.CDataStack(filename) self.SetTitle(filename) self.saved = True self.vp = MyViewPanel(self, self.ds) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(self.vp, 1, wx.EXPAND, 0) self.SetAutoLayout(1) self.SetSizer(sizer) sizer.Fit(self) #sizer.SetSizeHints(self) # Menu Bar self.menubar = wx.MenuBar() self.SetMenuBar(self.menubar) tmp_menu = wx.Menu() #F_SAVE = wx.NewId() #F_CLOSE = wx.NewId() tmp_menu.Append(wx.ID_SAVEAS, "Save As", "", wx.ITEM_NORMAL) tmp_menu.Append(wx.ID_CLOSE, "Close", "", wx.ITEM_NORMAL) self.menubar.Append(tmp_menu, "File") mEdit = wx.Menu() EDIT_CLEAR_SEL = wx.NewId() EDIT_CROP = wx.NewId() mEdit.Append(EDIT_CLEAR_SEL, "Reset Selection", "", wx.ITEM_NORMAL) mEdit.Append(EDIT_CROP, "Crop", "", wx.ITEM_NORMAL) self.menubar.Append(mEdit, "Edit") # Menu Bar end wx.EVT_MENU(self, wx.ID_SAVEAS, self.saveStack) wx.EVT_MENU(self, wx.ID_CLOSE, self.menuClose) wx.EVT_MENU(self, EDIT_CLEAR_SEL, self.clearSel) wx.EVT_MENU(self, EDIT_CROP, self.crop) wx.EVT_CLOSE(self, self.OnCloseWindow) self.statusbar = self.CreateStatusBar(1, wx.STB_SIZEGRIP) self.Layout() self.update()
def crop(self, event): cd = dCrop.dCrop(self, self.vp) if cd.ShowModal(): ds2 = example.CDataStack(self.ds, cd.x1, cd.y1, cd.z1, cd.x2, cd.y2, cd.z2, cd.chs) dvf = DSViewFrame(self.GetParent(), '--cropped--', ds2) dvf.Show()
def __init__(self, parent, dstack=None): wx.ScrolledWindow.__init__(self, parent, -1) if (dstack == None): self.ds = example.CDataStack("test.kdf") else: self.ds = dstack self.imagepanel = self self.selecting = False self.SetScrollRate(10, 10) self.SetVirtualSize(wx.Size(self.ds.getWidth(), self.ds.getHeight())) self.SetSize((self.ds.getWidth(), self.ds.getHeight())) self.do = example.CDisplayOpts() self.do.setDisp1Chan(0) self.do.setDisp2Chan(0) self.do.setDisp3Chan(0) if (self.ds.getNumChannels() >= 2): self.do.setDisp2Chan(1) if (self.ds.getNumChannels() >= 3): self.do.setDisp1Chan(2) self.do.Optimise(self.ds) self.rend = example.CLUT_RGBRenderer() self.rend.setDispOpts(self.do) self.scale = 0 self.updating = 0 self.selection = True self.ResetSelection() wx.EVT_PAINT(self, self.OnPaint) wx.EVT_SIZE(self, self.OnSize) wx.EVT_RIGHT_DOWN(self, self.OnRightDown) wx.EVT_RIGHT_UP(self, self.OnRightUp) wx.EVT_LEFT_DOWN(self.imagepanel, self.OnRightDown) wx.EVT_LEFT_UP(self.imagepanel, self.OnRightUp) wx.EVT_MOTION(self.imagepanel, self.OnMotion) wx.EVT_ERASE_BACKGROUND(self, self.DoNix)
def generateThumbnail(inputFile, thumbSize): global size im = cSMI.CDataStack_AsArray(cSMI.CDataStack(inputFile.encode()), 0).mean(2).squeeze() xsize = im.shape[0] ysize = im.shape[1] if xsize > ysize: zoom = float(thumbSize) / xsize else: zoom = float(thumbSize) / ysize size = (int(xsize * zoom), int(ysize * zoom)) im = im - im.min() im = maximum(minimum(1 * (255 * im) / im.max(), 255), 0) return im.astype('uint8')
def LoadKdf(self, filename): '''load khorus formatted data - pretty much deprecated by now''' import PYME.cSMI as cSMI self.data = cSMI.CDataStack_AsArray(cSMI.CDataStack(filename), 0).squeeze() self.mdh = MetaData.TIRFDefault try: #try and get metadata from the .log file lf = open(os.path.splitext(filename)[0] + '.log') from PYME.DSView import logparser lp = logparser.logparser() log = lp.parse(lf.read()) lf.close() self.mdh.setEntry('voxelsize.z', log['PIEZOS']['Stepsize']) except: pass from PYME.ParallelTasks.relativeFiles import getRelFilename self.seriesName = getRelFilename(filename) self.mode = 'psf'
def __init__(self, parent, dstack=None): viewpanel.ViewPanel.__init__(self, parent, -1) if (dstack is None): self.ds = example.CDataStack("test.kdf") else: self.ds = dstack self.imagepanel.SetVirtualSize( wx.Size(self.ds.getWidth(), self.ds.getHeight())) self.imagepanel.SetSize((self.ds.getWidth(), self.ds.getHeight())) self.do = example.CDisplayOpts() self.do.setDisp1Chan(0) self.do.setDisp2Chan(0) self.do.setDisp3Chan(0) if (self.ds.getNumChannels() >= 2): self.do.setDisp2Chan(1) if (self.ds.getNumChannels() >= 3): self.do.setDisp1Chan(2) self.do.Optimise(self.ds) self.rend = example.CLUT_RGBRenderer() self.rend.setDispOpts(self.do) self.cbRedChan.Append("<none>") self.cbGreenChan.Append("<none>") self.cbBlueChan.Append("<none>") for i in range(self.ds.getNumChannels()): self.cbRedChan.Append(self.ds.getChannelName(i)) self.cbGreenChan.Append(self.ds.getChannelName(i)) self.cbBlueChan.Append(self.ds.getChannelName(i)) self.scale = 2 self.crosshairs = True self.selection = True self.ResetSelection() self.SetOpts() self.updating = 0 self.showOptsPanel = 1 wx.EVT_PAINT(self.imagepanel, self.OnPaint) wx.EVT_MOUSEWHEEL(self, self.OnWheel) wx.EVT_KEY_DOWN(self.imagepanel, self.OnKeyPress) wx.EVT_LEFT_UP(self.imagepanel, self.OnLeftClick) wx.EVT_RIGHT_DOWN(self.imagepanel, self.OnRightDown) wx.EVT_RIGHT_UP(self.imagepanel, self.OnRightUp) wx.EVT_COMBOBOX(self, self.cbRedChan.GetId(), self.GetOpts) wx.EVT_COMBOBOX(self, self.cbGreenChan.GetId(), self.GetOpts) wx.EVT_COMBOBOX(self, self.cbBlueChan.GetId(), self.GetOpts) wx.EVT_COMBOBOX(self, self.cbSlice.GetId(), self.GetOpts) wx.EVT_COMBOBOX(self, self.cbScale.GetId(), self.GetOpts) wx.EVT_TEXT(self, self.tRedGain.GetId(), self.GetOpts) wx.EVT_TEXT(self, self.tRedOff.GetId(), self.GetOpts) wx.EVT_TEXT(self, self.tGreenGain.GetId(), self.GetOpts) wx.EVT_TEXT(self, self.tGreenOff.GetId(), self.GetOpts) wx.EVT_TEXT(self, self.tBlueGain.GetId(), self.GetOpts) wx.EVT_TEXT(self, self.tBlueOff.GetId(), self.GetOpts) wx.EVT_BUTTON(self, self.bOptimise.GetId(), self.Optim) wx.EVT_BUTTON(self, self.bShowOpts.GetId(), self.ShowOpts) wx.EVT_ERASE_BACKGROUND(self.imagepanel, self.DoNix) wx.EVT_ERASE_BACKGROUND(self, self.DoNix)