Пример #1
0
    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()
Пример #2
0
 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()
Пример #3
0
    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)
Пример #4
0
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')
Пример #5
0
    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'
Пример #6
0
    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)