Example #1
0
    def __init__(self, display):
        Tool.__init__(self, display)

        self._lastVal = [0,0]

        pa = self.setParameterMenu() 

        joy = JoystickButton()
        joy.sigStateChanged.connect(self._joystickChanged)
        self._menu.content.layout().insertWidget(1,joy)

        self.pX = pa.addChild({
            'name': 'X',
            'type': 'int',
            'value':0,}) 
        self._pxChanged = lambda param, val, axis=0: self.pXYChanged(val, axis)
        self.pX.sigValueChanged.connect(self._pxChanged)

        self.pY = pa.addChild({
            'name': 'Y',
            'type': 'int',
            'value':0,}) 
        self._pyChanged = lambda param, val, axis=1: self.pXYChanged(val, axis)
        self.pY.sigValueChanged.connect(self._pyChanged)
        
        pAccept = pa.addChild({
            'name': 'Accept',
            'type': 'action'}) 
        pAccept.sigActivated.connect(self.acceptChanges)
        
        pReset = pa.addChild({
            'name': 'Reset',
            'type': 'action'})
        pReset.sigActivated.connect(self.resetChanges)
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)

        self.calFileTool = self.showGlobalTool(CalibrationFile)

        pa = self.setParameterMenu() 
        self.createResultInDisplayParam(pa, value='[NEW, ADD]')
        
        pB = pa.addChild({
            'name':'Balance value range',
            'type':'group'})
        self.pBFrom = pB.addChild({
            'name':'from',
            'type':'float',
            'value':0.001,
            'limits':[0,1]})  
        self.pBTo = pB.addChild({
            'name':'to',
            'type':'float',
            'value':0.02,
            'limits':[0,1]})       
        self.pn = pa.addChild({
            'name':'N steps',
            'type':'int',
            'value':10,
            'limits':[3,1000]})        
        self.pUpdate = pa.addChild({
            'name':'Update Calibration',
            'type':'action',
            'visible':False}) 
        self.pUpdate.sigActivated.connect(self.updateCalibration)   
Example #3
0
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)
        self.setChecked(True)

        self._connected = []
        self.interpolator = None

        pa = self.setParameterMenu()

        pSync = pa.addChild({
            'name': 'Synchronize',
            'value': 'Display',
            'type': 'menu',
            'highlight': True
        })
        pSync.aboutToShow.connect(self._buildLinkView)

        pCont = pa.addChild({
            'name': 'Continous',
            'value': False,
            'type': 'bool',
            'tip': 'Fade between different images'
        })

        pCont.sigValueChanged.connect(self.setContinous)
Example #4
0
    def __init__(self, display):
        Tool.__init__(self, display)

        self.outDisplay = None

        self._method = {
            'tenengrad': parameters.tenengrad,
            'modifiedLaplacian': parameters.modifiedLaplacian,
            'varianceOfLaplacian': parameters.varianceOfLaplacian,
            'normalizedGraylevelVariance':
            parameters.normalizedGraylevelVariance
        }

        pa = self.setParameterMenu()

        self.pLayer = pa.addChild({
            'name': 'apply on',
            'type': 'list',
            'value': 'all layers',
            'limits': ['all layers', 'last layer']
        })

        self.pNewDisplay = pa.addChild({
            'name': 'create new display',
            'type': 'bool',
            'value': False
        })

        self.pMethod = pa.addChild({
            'name': 'method',
            'type': 'list',
            'value': 'tenengrad',
            'limits': self._method.keys()
        })
Example #5
0
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)

        pa = self.setParameterMenu()
        self.createResultInDisplayParam(pa)

        self.pSize = pa.addChild({
            'name': 'Size',
            'type': 'int',
            'value': 30,
            'limits': [5, 1000]
        })

        self.pSetEvery = pa.addChild({
            'name':
            'Set every',
            'type':
            'bool',
            'value':
            False,
            'tip':
            'Otherwise value calculated as size/3.5'
        })
        self.pEvery = self.pSetEvery.addChild({
            'name': 'value',
            'type': 'int',
            'value': 10,
            'limits': [5, 1000],
            'visible': False
        })
        self.pSetEvery.sigValueChanged.connect(
            lambda p, v: self.pEvery.show(v))
Example #6
0
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)

        self._refImg = None

        pa = self.setParameterMenu()

        self._methods = {
            # NAME: (FUNCTION, HISTOGRAM LEVELS)
            "Reference image": (lambda x: scaleSignal(x, reference=self._refImg), None),
            "Equalize histogram": (equalizeImage, None),
            "Scale Background-Signal: 0-1": (lambda x: scaleSignal(x, backgroundToZero=True), [0, 1]),
            "Scale signal +/-3std": (scaleSignal, [0, 1]),
            "Maximum=1": (lambda img: img / np.nanmax(img), None),
            "Average=1": (lambda img: img / np.nanmean(img), None),
            "Minimum=0, Maximum=1": (self._scaleMinMax, [0, 1]),
        }

        self.pMethod = pa.addChild(
            {"name": "Method", "type": "list", "value": "Scale signal +/-3std", "limits": list(self._methods.keys())}
        )

        self.pRefImgChoose = self.pMethod.addChild(
            {"name": "Reference image", "value": "From display", "type": "menu", "visible": False}
        )
        self.pRefImg = self.pRefImgChoose.addChild({"name": "Chosen", "value": "-", "type": "str", "readonly": True})

        self.pRefImgChoose.aboutToShow.connect(lambda menu: self.buildOtherDisplayLayersMenu(menu, self._setRefImg))

        self.pMethod.sigValueChanged.connect(lambda p, v: self.pRefImgChoose.show(v == "Reference image"))
Example #7
0
    def __init__(self, display):
        Tool.__init__(self, display)

        self.outDisplay = None

        self._method = {
            'tenengrad': parameters.tenengrad,
            'modifiedLaplacian': parameters.modifiedLaplacian,
            'varianceOfLaplacian': parameters.varianceOfLaplacian,
            'normalizedGraylevelVariance': parameters.normalizedGraylevelVariance
        }

        pa = self.setParameterMenu()

        self.pLayer = pa.addChild({
            'name': 'apply on',
            'type': 'list',
            'value': 'all layers',
            'limits': ['all layers', 'last layer']})

        self.pNewDisplay = pa.addChild({
            'name': 'create new display',
            'type': 'bool',
            'value': False})

        self.pMethod = pa.addChild({
            'name': 'method',
            'type': 'list',
            'value': 'tenengrad',
            'limits': list(self._method.keys())})
Example #8
0
    def __init__(self, display):
        Tool.__init__(self, display)

        pa = self.setParameterMenu()

        # make some space for the color layer names:
        #         try:
        self._menu.pTree.header().setResizeMode(QtWidgets.QHeaderView.Fixed)
        #         except AttributeError:
        #             self._menu.pTree.header().setSectionResizeMode(QtWidgets.QHeaderView.Fixed)
        self._menu.pTree.setColumnWidth(0, 220)
        self._menu.pTree.setColumnWidth(1, 20)

        self.pAdd = pa.addChild({
            'name': 'add',
            'value': 'from display',
            'type': 'menu'
        })
        self.pAdd.aboutToShow.connect(self.buildAddMenu)

        pa.sigChildRemoved.connect(self.removeLayer)

        w = self.display.widget
        w.sigOverlayAdded.connect(self.addLayerControl)
        w.sigOverlayRemoved.connect(self.removeLayerControl)
Example #9
0
    def __init__(self, display):
        Tool.__init__(self, display)

        self.scene = self.display.widget.view.scene()
        self.rulers = []
        self.rulersLen = []
        self.scale = 1
        self.scaleEditor = _ScaleEditor(self)

        p = self.setParameterMenu()

        pShow = p.addChild({"name": "Show", "type": "bool", "value": True})
        pShow.sigValueChanged.connect(self.toggleShow)

        self.pAngle = p.addChild({"name": "Show angle", "type": "bool", "value": False})

        self.pColor = p.addChild({"name": "Color", "type": "color", "value": (255, 0, 0, 130)})

        self.pSetScale = p.addChild({"name": "Set Scale", "type": "bool", "value": False})

        self.pRatio = self.pSetScale.addChild(
            {"name": "Aspect Ratio = 1", "type": "bool", "value": True, "visible": False}
        )

        self.pSetScale.sigValueChanged.connect(lambda param, val: [ch.show(val) for ch in param.children()])

        pReset = p.addChild({"name": "reset", "type": "action", "value": True})
        pReset.sigActivated.connect(self.reset)
Example #10
0
    def __init__(self, display):
        Tool.__init__(self, display)

        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self._grabImage)
        self.firstTime = True

        pa = self.setParameterMenu()

        self.pGrayscale = pa.addChild({
            'name': 'Grayscale',
            'type': 'bool',
            'value': True}) 

        self.pFloat = pa.addChild({
            'name': 'To float',
            'type': 'bool',
            'value': True}) 
        
        pFrequency = pa.addChild({
            'name': 'Read frequency [Hz]',
            'type': 'float',
            'value': 20.0,
            'limits':[0,1000]}) 
        pFrequency.sigValueChanged.connect(self._setInterval)
        
        self._setInterval(pFrequency, pFrequency.value())

        self.pBuffer = pa.addChild({
            'name': 'Buffer last n images',
            'type': 'int',
            'value': 0}) 
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)        
        
        pa = self.setParameterMenu() 
        self.createResultInDisplayParam(pa)

        self.pSize = pa.addChild({
            'name':'Size',
            'type':'int',
            'value':3,
            'limits':[1, 1000]})
        
        self.pThreshold = pa.addChild({
            'name':'Threshold',
            'type':'float',
            'value':0.2,
            'tip': 'ratio to exceed to be filtered'})
        self.pCondition = pa.addChild({
            'name':'Condition',
            'type':'list',
            'value':'>',
            'limits': ['>', '<']})
        
        self.pAddChangesLayer = pa.addChild({
            'name':'Add changes layer',
            'type':'bool',
            'value':True})
Example #12
0
    def __init__(self, display):
        Tool.__init__(self, display)

        display.sigLayerChanged.connect(self._check)
        display.sigNewLayer.connect(self._check)

        pa = self.setParameterMenu()

        pa.addChild({
            'name': 'Separate color channels',
            'type': 'action'
        }).sigActivated.connect(self.separate)

        pa.addChild({
            'name': 'RG chromaticity',
            'type': 'action',
            'tip': rgChromaticity.__doc__
        }).sigActivated.connect(self._chromaticity)

        pa.addChild({
            'name': 'Monochromatic wavelength',
            'type': 'action',
            'tip': monochromaticWavelength.__doc__
        }).sigActivated.connect(self._monochromaticWavelength)

        self.createResultInDisplayParam(pa, value='[ALLWAYS NEW]')

        self._check()
Example #13
0
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)
        
        pa = self.setParameterMenu() 
        
        self.pSizeX = pa.addChild({
            'name': 'X-size',
            'type': 'int',
            'value':300,
            'limits':[1,1e6]}) 

        self.pSizeY = pa.addChild({
            'name': 'Y-size',
            'type': 'int',
            'value':300,
            'limits':[1,1e6]}) 
        
        self.pObject = pa.addChild({
            'name': 'Object',
            'type': 'list',
            'limits':['current image', 'current color layer']})        
                
        self.pCriterion =  pa.addChild({
            'name': 'Criterion',
            'type': 'list',
            'limits':['==', '>', '<']}) 
        
        self.pValue =  pa.addChild({
            'name': 'Value',
            'type': 'float',
            'value': 100}) 
Example #14
0
    def __init__(self, display):
        Tool.__init__(self, display)

        pa = self.setParameterMenu()

        self.pMask = pa.addChild({
            'name': 'Pixel mask from color layer',
            'type': 'list',
            'value': '',
            'limits': []
        })

        self.pMaxPlots = pa.addChild({
            'name': 'Max n plots',
            'type': 'int',
            'value': 100,
            'min': 1
        })

        self.pDivideBG = pa.addChild({
            'name': 'Divide background',
            'type': 'bool',
            'value': True
        })

        self.pBgSize = pa.addChild({
            'name': 'Background median kernel size',
            'type': 'int',
            'value': 3,
            'min': 1
        })

        self._menu.aboutToShow.connect(self._setPixelMaskOptions)
Example #15
0
    def __init__(self, display):
        Tool.__init__(self, display)
        
        self._refImg = None

        pa = self.setParameterMenu() 

        self.createResultInDisplayParam(pa)

        self.pOperation = pa.addChild({
            'name':'Operation',
            'type':'list',
            'value':'fit',
            'limits':['add', 'fit']})

        self.pExecOn = pa.addChild({
            'name':'Execute on',
            'type':'list',
            'value':'all images',
            'limits':['all images', 'last image']})
 
        pRefImgChoose = pa.addChild({
                    'name':'reference image',
                    'value':'from display',
                    'type':'menu'})
        
        self.pRefImg = pRefImgChoose.addChild({
                    'name':'chosen',
                    'value':'-',
                    'type':'str',
                    'readonly':True})
        
        pRefImgChoose.aboutToShow.connect(lambda menu: 
            self.buildOtherDisplayLayersMenu(menu, self._setRefImg) )
Example #16
0
    def __init__(self, display):
        Tool.__init__(self, display)

        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self._grabImage)
        self.firstTime = True

        pa = self.setParameterMenu()

        self.pGrayscale = pa.addChild({
            'name': 'Grayscale',
            'type': 'bool',
            'value': True})

        self.pFloat = pa.addChild({
            'name': 'To float',
            'type': 'bool',
            'value': True})

        pFrequency = pa.addChild({
            'name': 'Read frequency [Hz]',
            'type': 'float',
            'value': 20.0,
            'limits': [0, 1000]})
        pFrequency.sigValueChanged.connect(self._setInterval)

        self._setInterval(pFrequency, pFrequency.value())

        self.pBuffer = pa.addChild({
            'name': 'Buffer last n images',
            'type': 'int',
            'value': 0})
Example #17
0
    def __init__(self, display):
        Tool.__init__(self, display)
  
        pa = self.setParameterMenu() 

        self.pMask = pa.addChild({
            'name':'Pixel mask from color layer',
            'type':'list',
            'value':'',
            'limits':[]})
        
        self.pMaxPlots = pa.addChild({
            'name':'Max n plots',
            'type':'int',
            'value':100,
            'limits':[1,1e5]})

        self.pDivideBG = pa.addChild({
            'name':'Divide background',
            'type':'bool',
            'value':True})
        
        self.pBgSize = pa.addChild({
            'name':'Background median kernel size',
            'type':'int',
            'value':3,
            'limits':[1,1e5]})

        self._menu.aboutToShow.connect(self._setPixelMaskOptions)
Example #18
0
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)

        #         self._linked_display = None

        self.setChecked(self.display.widget.view.vb.state['aspectLocked'])

        pa = self.setParameterMenu()

        pSync = pa.addChild({
            'name': 'Synchronize',
            'value': 'Display',
            'type': 'menu',
            'highlight': True
        })
        pSync.aboutToShow.connect(self._buildLinkView)

        pRange = pa.addChild({
            'name':
            'autoRange',
            'type':
            'bool',
            'value':
            True,
            'tip':
            '''whether to fit view every time the input changes'''
        })
        pRange.sigValueChanged.connect(
            lambda param, value: self.display.widget.setOpts(autoRange=value))
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)

        pa = self.setParameterMenu()
        self.createResultInDisplayParam(pa)

        self.pSize = pa.addChild({
            'name': 'Size',
            'type': 'int',
            'value': 3,
            'min': 1
        })

        self.pThreshold = pa.addChild({
            'name': 'Threshold',
            'type': 'float',
            'value': 0.2,
            'tip': 'ratio to exceed to be filtered'
        })
        self.pCondition = pa.addChild({
            'name': 'Condition',
            'type': 'list',
            'value': '>',
            'limits': ['>', '<']
        })

        self.pAddChangesLayer = pa.addChild({
            'name': 'Add changes layer',
            'type': 'bool',
            'value': True
        })
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)

        self.calFileTool = self.showGlobalTool(CalibrationFile)

        pa = self.setParameterMenu()
        self.createResultInDisplayParam(pa, value='[NEW, ADD]')

        pB = pa.addChild({'name': 'Balance value range', 'type': 'group'})
        self.pBFrom = pB.addChild({
            'name': 'from',
            'type': 'float',
            'value': 0.001,
            'limits': [0, 1]
        })
        self.pBTo = pB.addChild({
            'name': 'to',
            'type': 'float',
            'value': 0.02,
            'limits': [0, 1]
        })
        self.pn = pa.addChild({
            'name': 'N steps',
            'type': 'int',
            'value': 10,
            'limits': [3, 1000]
        })
        self.pUpdate = pa.addChild({
            'name': 'Update Calibration',
            'type': 'action',
            'visible': False
        })
        self.pUpdate.sigActivated.connect(self.updateCalibration)
Example #21
0
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)
        _import()

        self.calFileTool = self.showGlobalTool(CalibrationFile)
        self.pa = self.setParameterMenu()

        self._bg = None
        self._method = None
        self._inter, self._slope = None, None

        pMeasure = self.pa.addChild({
            'name': 'Calculate calibration array ...',
            'type': 'empty'
        })

        self.createResultInDisplayParam(pMeasure)

        self.pMethod = pMeasure.addChild({
            'name': 'Method',
            'type': 'list',
            'value': 'as function',
            'limits': ['average', 'as function']
        })

        pMeasure.addChild({
            'name': 'Exposure times [s]',
            'type': 'str',
            'value': '... are taken from layer value',
            'readonly': True
        })

        pFromDisplay = self.pa.addChild({
            'name': 'Load calibration array ...',
            'type': 'empty'
        })

        pFromDisplay.addChild({
            'name': 'Intercept',
            'type': 'menu',
            'value': 'from display'
        }).aboutToShow.connect(
            lambda m, fn=self._interceptfromDisplay: self.
            buildOtherDisplayLayersMenu(m, fn, includeThisDisplay=True))

        pFromDisplay.addChild({
            'name': 'Slope',
            'type': 'menu',
            'value': 'from display'
        }).aboutToShow.connect(
            lambda m, fn=self._slopefromDisplay: self.
            buildOtherDisplayLayersMenu(m, fn, includeThisDisplay=True))

        self.pUpdate = self.pa.addChild({
            'name': 'Update calibration',
            'type': 'action',
            'visible': False
        })
        self.pUpdate.sigActivated.connect(self.updateCalibration)
Example #22
0
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)

        self.calFileTool = self.showGlobalTool(CalibrationFile)

        self.camera = None
        self.outDisplay = None
        self.outDisplay2 = None

        self._refDisplay = None

        pa = self.setParameterMenu()

        self.pRef = pa.addChild({
            'name': 'Reference images',
            'type': 'list',
            'value': 'None',
            'limits': ['None', 'From display', 'Every 2nd'],
            'tip': 'Images of the same setup taken at the same exposure time'})

        self.pRefFromDisplay = self.pRef.addChild({
            'name': 'From display',
            'type': 'menu',
            'value': '[Choose]',
            'visible': False})
        self.pRefFromDisplay.aboutToShow.connect(self._buildRefFromDisplayMenu)

        self.pRef.sigValueChanged.connect(lambda param, val:
                                          self.pRefFromDisplay.show(val == 'From display'))

        self.pPlotResult = pa.addChild({
            'name': 'Plot NLF',
            'type': 'bool',
            'value': True})

        self.pRange = pa.addChild({
            'name': 'Set intensity range',
            'type': 'bool',
            'value': False})

        self.pMin = self.pRange.addChild({
            'name': 'Minimum',
            'type': 'int',
            'visible': False,
            'value': 0})

        self.pMax = self.pRange.addChild({
            'name': 'Maximum',
            'type': 'int',
            'visible': False,
            'value': 65000})
        self.pRange.sigValueChanged.connect(lambda param, val:
                                            [ch.show(val) for ch in self.pRange.childs])

        self.pUpdate = pa.addChild({
            'name': 'Update calibration',
                    'type': 'action',
                    'visible': False})
        self.pUpdate.sigActivated.connect(self.updateCalibration)
Example #23
0
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)

        self.calFileTool = self.showGlobalTool(CalibrationFile)

        self.camera = None
        self.outDisplay = None
        self.outDisplay2 = None
        
        self._refDisplay = None

        pa = self.setParameterMenu() 

        self.pRef = pa.addChild({
            'name': 'Reference images',
            'type': 'list',
            'value':'None',
            'limits': ['None', 'From display', 'Every 2nd'],
            'tip':'Images of the same setup taken at the same exposure time'})     

        self.pRefFromDisplay  = self.pRef.addChild({
            'name':'From display',
            'type':'menu',
            'value':'[Choose]',
            'visible':False})
        self.pRefFromDisplay.aboutToShow.connect(self._buildRefFromDisplayMenu)

        self.pRef.sigValueChanged.connect(lambda param, val: 
                        self.pRefFromDisplay.show(val=='From display'))

        self.pPlotResult = pa.addChild({
            'name': 'Plot NLF',
            'type': 'bool',
            'value':True})      

        self.pRange = pa.addChild({
            'name':'Set intensity range',
            'type':'bool',
            'value':False})

        self.pMin = self.pRange.addChild({
            'name':'Minimum',
            'type':'int',
            'visible':False,
            'value':0})
        
        self.pMax = self.pRange.addChild({
            'name':'Maximum',
            'type':'int',
            'visible':False,
            'value':65000})
        self.pRange.sigValueChanged.connect(lambda param, val: 
                        [ch.show(val) for ch in self.pRange.childs])

        self.pUpdate = pa.addChild({
                    'name':'Update calibration',
                    'type':'action',
                    'visible':False})
        self.pUpdate.sigActivated.connect(self.updateCalibration)
Example #24
0
    def __init__(self, plotDisplay):
        Tool.__init__(self, plotDisplay)

        pa = self.setParameterMenu()
        self._menu.aboutToShow.connect(self._updateMenu)

        p = pa.addChild({'name': '[All]', 'type': 'int', 'value': 1})
        p.sigValueChanged.connect(self._pAllChanged)
Example #25
0
    def __init__(self, display):
        Tool.__init__(self, display)

        self._linked_display = None

        self._menu = QtWidgets.QMenu()
        self.setMenu(self._menu)
        self._menu.aboutToShow.connect(self._buildMenu)
Example #26
0
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)

        #speed-up start
        from scipy.ndimage.filters import median_filter, gaussian_filter, \
                                          maximum_filter, minimum_filter
        
        from skimage.restoration import nl_means_denoising

        self.FILTER = {'median':median_filter, 
                'Gaussian':gaussian_filter, 
                'maximum':maximum_filter, 
                'minimum':minimum_filter,
                'Non-local means':nl_means_denoising}

             
        pa = self.setParameterMenu() 
        self.createResultInDisplayParam(pa)

        self.pType = pa.addChild({
            'name':'Type',
            'type':'list',
            'limits':self.FILTER.keys(),
            'value':'median'})                             
        
        self.pSeparate = pa.addChild({
            'name':'Filter layers separate',
            'type':'bool',
            'value':True})

        self.pSize = pa.addChild({
            'name':'size',
            'type':'int',
            'value':3,
            'limits':[1, 1000]})

        self.pMode = pa.addChild({
            'name':'mode',
            'type':'list',
            'limits':['reflect', 'constant', 'nearest', 'mirror', 'wrap'],
            'value':'reflect'})

        self.pCVal = pa.addChild({
            'name':'cval',
            'type':'float',
            'value':0.0,
            'limits':[0, 1000]})

        self.pOrigin = pa.addChild({
            'name':'origin',
            'type':'int',
            'value':0,
            'limits':[0, 1000]})

        self.pAddChangesLayer = pa.addChild({
            'name':'Add changes layer',
            'type':'bool',
            'value':False})
Example #27
0
    def __init__(self, display):
        Tool.__init__(self, display)

        self._linked_displays = []
        self._actions = []
        
        self._menu = QtGui.QMenu()
        self.setMenu(self._menu)
        self._menu.aboutToShow.connect(self._buildMenu)
Example #28
0
    def __init__(self, display):
        Tool.__init__(self, display)

        self._linked_displays = []
        self._actions = []
        
        self._menu = QtGui.QMenu()
        self.setMenu(self._menu)
        self._menu.aboutToShow.connect(self._buildMenu)
Example #29
0
    def __init__(self, display):
        Tool.__init__(self, display)

        pa = self.setParameterMenu()

        self.pSharp = pa.addChild({
            'name': 'Equalize sharpness',
            'type': 'bool',
            'value': True})
Example #30
0
    def __init__(self, display):
        Tool.__init__(self, display)

        self._d = None
        pa = self.setParameterMenu()

        self.pX = pa.addChild({"name": "x", "type": "list"})
        self.pY = pa.addChild({"name": "y", "type": "list"})
        self._menu.aboutToShow.connect(self._buildMenu)
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)

        self.display.showToolBar('Measurement')

        pa = self.setParameterMenu()

        self.createResultInDisplayParam(pa)

        self.pParamFromName = pa.addChild({
            'name': 'Get parameters from filename',
            'type': 'bool',
            'value': True,
            'tip': '''Read voltage, current, temperature from filename
            Filename has to have to following formating:
            ...
            _e[EXPOSURE TIME IN MS]
            _V[VOLTAGE in V]
            _I[CURRENT IN A]
            _T[TEMPERATURE in DEG C]...
            float point number are written like that:
            '0-015' for 0.015
            '''})
        self.pParamFromName.sigValueChanged.connect(lambda p, v:
                                                    [ch.show(not(v))
                                                     for ch in p.childs])

        for name in ('First image', 'Second image'):
            ch = self.pParamFromName.addChild({
                'name': name,
                'type': 'empty',
                'highlight': True,
                'visible': False})
            ch.addChild({
                'name': 'Exposure time',
                'type': 'float',
                'suffix': 's',
                'siPrefix': True,
                'value': 10})
            ch.addChild({
                'name': 'Voltage',
                'type': 'float',
                'suffix': 'V',
                'siPrefix': True,
                'value': 10})
            ch.addChild({
                'name': 'Current',
                'type': 'float',
                'suffix': 'A',
                'siPrefix': True,
                'value': 10})
            ch.addChild({
                'name': 'Temperature',
                'type': 'float',
                'suffix': 'DEG C',
                'siPrefix': True,
                'value': 20})
Example #32
0
    def __init__(self, display):
        Tool.__init__(self, display)
        self.setChecked(True)

        self._linked_displays = []
        self._actions = []

        w = self.display.widget

        pa = self.setParameterMenu() 

        pSync = pa.addChild({
            'name':'Synchronize',
            'value':'Display',
            'type':'menu',
            'highlight':True
            })
        pSync.aboutToShow.connect(self._buildLinkColorbar)

        pFit = pa.addChild({
            'name': 'Fit',
            'type': 'action'})
        pFit.sigActivated.connect(self._fit)

        pLevels = pa.addChild({
            'name': 'autoLevels',
            'type': 'bool',
            'value':w.opts['autoLevels']})
        pLevels.sigValueChanged.connect(lambda param, value: 
                w.setOpts(autoLevels=value))
         
        pRange = pa.addChild({
            'name': 'autoHistogramRange',
            'type': 'bool',
            'value':w.opts['autoHistogramRange']})
        pRange.sigValueChanged.connect(lambda param, value: 
                w.setOpts(autoHistogramRange=value))  
        
        self.pPrintView = pa.addChild({
            'name': 'print view',
            'type': 'bool',
            'value':False})
        self.pPrintView.sigValueChanged.connect(lambda param, value: 
               w.setHistogramPrintView(value, pShowHist.value()))  
                
        pShowHist = self.pPrintView.addChild({
            'name': 'show histogram',
            'type': 'bool',
            'value':False})        
        pShowHist.sigValueChanged.connect(self._pShowHistChanged)  
        
        pLog = pa.addChild({
            'name': 'Transform to base 10 logarithm',
            'tip':'The absolute is taken to include negative values as well',
            'type': 'action'})
        pLog.sigActivated.connect(self._log10)
Example #33
0
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)

        self.methods = {
             'absolute':self._absolute,
            # 'relative':self._relative,
             'positive':self._pos,
             'negative':self._neg}

        pa = self.setParameterMenu() 

        self.pRefLayer = pa.addChild({
            'name': 'Reference Image',
            'type': 'list',
            'limits':[]})
        self._menu.aboutToShow.connect(
            lambda: self.pRefLayer.setLimits(self.display.layerNames()))

        self.pMethod = pa.addChild({
            'name': 'Method',
            'type': 'list',
            'limits':['absolute','positive', 'negative'] })

        self.pAlpha = pa.addChild({
            'name': 'Alpha',
            'type': 'float',
            'value':1,
            'limits':[0,1]})

        self.pFilter = pa.addChild({
            'name': 'Filter values',
            'type': 'bool',
            'value':False})
        self.pFilter.sigValueChanged.connect(lambda p,v:
                        [ch.show(v) for ch in p.childs])

        self.pFilterRelative = self.pFilter.addChild({
            'name': 'relative values',
            'type': 'bool',
            'value':False,
            'visible':False,
            'tip': 'True: filter values from 0 to 1 (100%)-max.value; False: absolute values'})
        self.pFilterRelative.sigValueChanged.connect(self._filterRelativeChanged )

        self.pFilterFrom = self.pFilter.addChild({
            'name': 'From',
            'type': 'float',
            'value':0,
            'visible':False,
            'limits':[0,1] })
        self.pFilterTo = self.pFilter.addChild({
            'name': 'To',
            'type': 'float',
            'value':1,
            'visible':False,
            'limits':[0,1] })
Example #34
0
    def __init__(self, display):
        Tool.__init__(self, display)
        self.setChecked(True)

        self._linked_displays = []
        self._actions = []

        w = self.display.widget

        pa = self.setParameterMenu()

        pSync = pa.addChild({
            'name': 'Synchronize',
            'value': 'Display',
            'type': 'menu',
            'highlight': True
        })
        pSync.aboutToShow.connect(self._buildLinkColorbar)

        pFit = pa.addChild({
            'name': 'Fit',
            'type': 'action'})
        pFit.sigActivated.connect(self._fit)

        pLevels = pa.addChild({
            'name': 'autoLevels',
            'type': 'bool',
            'value': w.opts['autoLevels']})
        pLevels.sigValueChanged.connect(lambda param, value:
                                        w.setOpts(autoLevels=value))

        pRange = pa.addChild({
            'name': 'autoHistogramRange',
            'type': 'bool',
            'value': w.opts['autoHistogramRange']})
        pRange.sigValueChanged.connect(lambda param, value:
                                       w.setOpts(autoHistogramRange=value))

        self.pPrintView = pa.addChild({
            'name': 'print view',
            'type': 'bool',
            'value': False})
        self.pPrintView.sigValueChanged.connect(lambda param, value:
                                                w.setHistogramPrintView(value, pShowHist.value()))

        pShowHist = self.pPrintView.addChild({
            'name': 'show histogram',
            'type': 'bool',
            'value': False})
        pShowHist.sigValueChanged.connect(self._pShowHistChanged)

        pLog = pa.addChild({
            'name': 'Transform to base 10 logarithm',
            'tip': 'The absolute is taken to include negative values as well',
            'type': 'action'})
        pLog.sigActivated.connect(self._log10)
Example #35
0
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)

        pa = self.setParameterMenu()

        self.pMax = pa.addChild({
            'name': 'Max plots',
                    'value': 20,
                    'type': 'int',
                    'min': 0})
Example #36
0
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)

        pa = self.setParameterMenu()

        self.pMax = pa.addChild({
            'name': 'Max plots',
                    'value': 20,
                    'type': 'int',
                    'limits': (0, 1e6)})
Example #37
0
    def __init__(self, plotDisplay):
        Tool.__init__(self, plotDisplay)

        pa = self.setParameterMenu() 

        self.pReference = pa.addChild({
            'name':'Reference',
            'type':'list',
            'value':'min-max',
            'limits':['min-max', 'mean+-3*std']}) 
Example #38
0
    def __init__(self, plotDisplay):
        Tool.__init__(self, plotDisplay)

        pa = self.setParameterMenu()
        self._menu.aboutToShow.connect(self._updateMenu)

        p = pa.addChild({
            'name': '[All]',
            'type': 'int',
            'value': 1})
        p.sigValueChanged.connect(self._pAllChanged)
Example #39
0
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)        
        
        pa = self.setParameterMenu() 
        self.createResultInDisplayParam(pa)

        self.pSize = pa.addChild({
            'name':'Size',
            'type':'int',
            'value':30,
            'limits':[5, 1000]})
Example #40
0
    def __init__(self, display):
        Tool.__init__(self, display)

        self.n_slices = 0
        self._ROIs = []

        a_show = QtWidgets.QAction('show', self)
        a_show.setCheckable(True)
        a_show.setChecked(True)
        a_show.toggled.connect(self.toggleShow)
        self.addAction(a_show)
Example #41
0
    def __init__(self, plotDisplay):
        Tool.__init__(self, plotDisplay)

        pa = self.setParameterMenu()

        self.pReference = pa.addChild({
            'name': 'Reference',
            'type': 'list',
            'value': 'min-max',
            'limits': ['min-max', 'mean+-3*std']
        })
Example #42
0
    def __init__(self, display):
        Tool.__init__(self, display)

        self.n_slices = 0
        self._ROIs = []

        a_show = QtWidgets.QAction('show', self)
        a_show.setCheckable(True)
        a_show.setChecked(True)
        a_show.toggled.connect(self.toggleShow)
        self.addAction(a_show)
Example #43
0
    def __init__(self, plotDisplay):
        Tool.__init__(self, plotDisplay)

        self.guess = None

        pa = self.setParameterMenu()

        self.pPlot = pa.addChild({
            'name': 'Plot',
            'type': 'list',
            'value': 'All'
        })

        XVals = pa.addChild({
            'name': 'X values',
            'type': 'empty',
            'highlight': True
        })

        self.pXFrom = XVals.addChild({
            'name': 'From',
            'type': 'float',
            'value': 0
        })

        self.pXTo = XVals.addChild({
            'name': 'To',
            'type': 'float',
            'value': 100
        })

        self.pXN = XVals.addChild({
            'name': 'Number',
            'type': 'int',
            'value': 100,
            'limits': [2, 10000]
        })

        self.pMethod = pa.addChild({
            'name': 'Method',
            'type': 'list',
            'value': 'Poisson',
            'limits': ['Poisson']
        })

        pManual = pa.addChild({
            'name': 'Manually set initial guess',
            'type': 'action'
        })

        pManual.sigActivated.connect(self._manualSetInitGuess)

        self._menu.aboutToShow.connect(self._updateMenu)
Example #44
0
    def __init__(self, display):
        Tool.__init__(self, display)

        self._d = None
        pa = self.setParameterMenu() 
        
        self.pX = pa.addChild({
            'name':'x',
            'type':'list'})
        self.pY = pa.addChild({
            'name':'y',
            'type':'list'})
        self._menu.aboutToShow.connect(self._buildMenu)
Example #45
0
    def __init__(self, display):
        Tool.__init__(self, display)

        self._d = None
        pa = self.setParameterMenu()

        self.pX = pa.addChild({
            'name': 'x',
            'type': 'list'})
        self.pY = pa.addChild({
            'name': 'y',
            'type': 'list'})
        self._menu.aboutToShow.connect(self._buildMenu)
Example #46
0
    def __init__(self, plotDisplay):
        Tool.__init__(self, plotDisplay)

        pa = self.setParameterMenu() 

        self._menu.aboutToShow.connect(self._updateMenu)
        #self._menu.aboutToHide.connect(self.clear)

        p = pa.addChild({
                'name':'[All]',
                'type':'list',
                'value': 'SolidLine',
                'limits':ENUM2STYLE.values()}) 
        p.sigValueChanged.connect(self._pAllChanged)
Example #47
0
    def __init__(self, display):
        Tool.__init__(self, display)
        # OUTPUT DISPLAYS:
        self.reconstructedDisplay = None
        self.fourierDisplay = None
        self.procFourierDisplay = None
        self.differenceDisplay = None
        # MENU:
        pa = self.setParameterMenu()

        pUpdate = pa.addChild({"name": "Update", "type": "action"})
        pUpdate.sigActivated.connect(self.activate)

        self.pHighPass = pa.addChild({"name": "High pass", "type": "slider", "value": 0, "limits": [0, 1]})

        self.pLowPass = pa.addChild({"name": "Low pass", "type": "slider", "value": 0, "limits": [0, 1]})

        pFilterValues = pa.addChild({"name": "Filter values", "type": "group"})

        self.pSmallerThreshold = pFilterValues.addChild(
            {"name": "smaller than", "type": "slider", "value": 0, "limits": [0, 1]}
        )

        self.pBiggerThreshold = pFilterValues.addChild(
            {"name": "bigger than", "type": "slider", "value": 0, "limits": [0, 1]}
        )

        pDeleteArea = pa.addChild({"name": "Delete area", "type": "group"})

        pDeleteAreaFrom = pDeleteArea.addChild({"name": "From", "type": "group"})

        self.pAreaFromX = pDeleteAreaFrom.addChild({"name": "x", "type": "slider", "value": 0, "limits": [0, 1]})

        self.pAreaFromY = pDeleteAreaFrom.addChild({"name": "y", "type": "slider", "value": 0, "limits": [0, 1]})

        pDeleteAreaTo = pDeleteArea.addChild({"name": "To", "type": "group"})

        self.pAreaToX = pDeleteAreaTo.addChild({"name": "x", "type": "slider", "value": 0, "limits": [0, 1]})

        self.pAreaToY = pDeleteAreaTo.addChild({"name": "y", "type": "slider", "value": 0, "limits": [0, 1]})

        pOutput = pa.addChild({"name": "Output", "type": "group"})

        self.pDifferenceImage = pOutput.addChild({"name": "Difference Image", "type": "bool", "value": True})

        self.pFourierImage = pOutput.addChild({"name": "Fourier Image", "type": "bool", "value": True})

        self.pProcessedFourierImage = pOutput.addChild(
            {"name": "Processed Fourier Image", "type": "bool", "value": True}
        )
Example #48
0
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)
        
        self.setChecked(self.display.widget.view.vb.state['aspectLocked'])

        pa = self.setParameterMenu() 

        pRange = pa.addChild({
            'name': 'autoRange',
            'type': 'bool',
            'value':True,
            'tip':'''whether to fit view every time the input changes'''})
        pRange.sigValueChanged.connect(lambda param, value: 
                                self.display.widget.setOpts(autoRange=value))
Example #49
0
    def restoreState(self, state):
        Tool.restoreState(self, state)
        old_ch = list(self._menu.p.childs[1:])

        #remove old param:
        pa = self._menu.p
        pa.sigChildRemoved.disconnect(self.removeLayer)
        for ch in old_ch:
            pa.removeChild(ch)
        pa.sigChildRemoved.connect(self.removeLayer)
        
        for n, ch in enumerate(old_ch):
            #load layers from file
            img = state['c_layer_%i' %n]
            self.display.widget.addColorLayer(img, name=ch.opts['name'], tip=ch.opts['name'])
Example #50
0
    def __init__(self, display):
        Tool.__init__(self, display)

        self._lastMoveVal = [0, 0]

        pa = self.setParameterMenu()

        joy = JoystickButton()
        joy.sigStateChanged.connect(self._move_joystickChanged)
        self._menu.addTopWidget(joy)

        self.pX = pa.addChild({
            'name': 'X',
            'type': 'int',
            'value': 0,
        })
        self._pxChanged = lambda param, val, axis=1: self._move_pXYChanged(
            val, axis)
        self.pX.sigValueChanged.connect(self._pxChanged)

        self.pY = pa.addChild({
            'name': 'Y',
            'type': 'int',
            'value': 0,
        })
        self._pyChanged = lambda param, val, axis=0: self._move_pXYChanged(
            val, axis)
        self.pY.sigValueChanged.connect(self._pyChanged)

        pAccept = pa.addChild({'name': 'Accept', 'type': 'action'})
        pAccept.sigActivated.connect(self._move_acceptChanges)

        pReset = pa.addChild({'name': 'Reset', 'type': 'action'})
        pReset.sigActivated.connect(self._move_resetChanges)

        pa.addChild({'name': '---', 'type': 'empty'})

        pTranspose = pa.addChild({'name': 'Rotate 90 DEG', 'type': 'action'})
        pTranspose.sigActivated.connect(self._rot90)

        pTranspose = pa.addChild({'name': 'Transpose', 'type': 'action'})
        pTranspose.sigActivated.connect(self._transpose)

        pMirrorX = pa.addChild({'name': 'Flip Horizontally', 'type': 'action'})
        pMirrorX.sigActivated.connect(self._mirrorX)

        pMirrorY = pa.addChild({'name': 'Flip Vertically', 'type': 'action'})
        pMirrorY.sigActivated.connect(self._mirrorY)
Example #51
0
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)
        _import()

        pa = self.setParameterMenu()
        self.createResultInDisplayParam(pa)

        self.pSTEremoval = pa.addChild({
            'name': 'Single-time-effect removal',
            'type': 'bool',
            'value': True
        })

        self.pAverageAll = pa.addChild({
            'name': 'Average all',
            'type': 'bool',
            'value': True
        })

        self.pAverageN = self.pAverageAll.addChild({
            'name': 'New layer every every N images',
            'type': 'int',
            'value': 2,
            'min': 2,
            'visible': False
        })
        self.pAverageAll.sigValueChanged.connect(
            lambda param, val: self.pAverageN.show(not val))

        self.pChangesLayer = self.pSTEremoval.addChild({
            'name': 'Add changes layer',
            'type': 'bool',
            'value': False
        })

        self.pNStd = self.pSTEremoval.addChild({
            'name':
            'nStd',
            'type':
            'float',
            'value':
            4,
            'tip':
            'factor image difference over local noise'
        })

        self.pSTEremoval.sigValueChanged.connect(
            lambda p, v: [c.show(p.value()) for c in p.childs])
Example #52
0
    def __init__(self, display):
        Tool.__init__(self, display)

        self.textItems = []

        pa = self.setParameterMenu()

        self.pScales = pa.addChild({
            'name': 'Text scales',
            'type': 'bool',
            'value': False
        })

        pAdd = self._menu.p.addChild({'name': 'Add', 'type': 'action'})
        pAdd.sigActivated.connect(
            lambda: self.view.scene().sigMouseClicked.connect(self._textAdd))
        pAdd.sigActivated.connect(self._menu.hide)

        pClear = pa.addChild({'name': 'Clear', 'type': 'action'})
        pClear.sigActivated.connect(self._clear)

        pColor = pa.addChild({
            'name': 'Color',
            'type': 'empty',
            'highlight': True
        })

        self.pCFont = pColor.addChild({
            'name': 'Font',
            'type': 'color',
            'value': (0, 0, 0)
        })
        self.pCFont.sigValueChanged.connect(self._fontColorChanged)

        self.pCBg = pColor.addChild({
            'name': 'Background',
            'type': 'color',
            'value': 'w'
        })
        self.pCBg.sigValueChanged.connect(self._fontBgChanged)

        self.pFont = pa.addChild({
            'name': 'Font',
            'type': 'action',
            'font': None
        })

        self.pFont.sigActivated.connect(self._setFont)
    def __init__(self, imageDisplay):
        Tool.__init__(self, imageDisplay)

        pa = self.setParameterMenu() 

        self.pRNRows = pa.addChild({
            'name': 'N rows',
            'type': 'int',
            'value':2,
            'limits':[1,100]})

        self.pSpace = pa.addChild({
            'name': 'Space inbetween',
            'type': 'int',
            'value':30,
            'limits':[0,1e5]})        
Example #54
0
    def __init__(self, display):
        Tool.__init__(self, display)
        
        display.sigLayerChanged.connect(self._check)
        display.sigNewLayer.connect(self._check)

        pa = self.setParameterMenu() 

        pSep = pa.addChild({
            'name': 'Separate color channels',
            'type': 'action'}) 
        pSep.sigActivated.connect(self.separate)

        self.createResultInDisplayParam(pa)
        
        self._check()
Example #55
0
    def restoreState(self, state):
        Tool.restoreState(self, state)
        old_ch = list(self._menu.p.childs[1:])

        #remove old param:
        pa = self._menu.p
        pa.sigChildRemoved.disconnect(self.removeLayer)
        for ch in old_ch:
            pa.removeChild(ch)
        pa.sigChildRemoved.connect(self.removeLayer)

        for n, ch in enumerate(old_ch):
            #load layers from file
            img = state['c_layer_%i' % n]
            self.display.widget.addColorLayer(img,
                                              name=ch.opts['name'],
                                              tip=ch.opts['name'])
Example #56
0
    def __init__(self, plotDisplay):
        Tool.__init__(self, plotDisplay)

        self.guess = None

        pa = self.setParameterMenu()

        self.pPlot = pa.addChild({
            'name': 'Plot',
            'type': 'list',
            'value': 'All'})

        XVals = pa.addChild({
            'name': 'X values',
            'type': 'empty',
            'highlight': True})

        self.pXFrom = XVals.addChild({
            'name': 'From',
            'type': 'float',
            'value': 0})

        self.pXTo = XVals.addChild({
            'name': 'To',
            'type': 'float',
            'value': 100})

        self.pXN = XVals.addChild({
            'name': 'Number',
            'type': 'int',
            'value': 100,
            'limits': [2, 10000]})

        self.pMethod = pa.addChild({
            'name': 'Method',
            'type': 'list',
            'value': 'Poisson',
            'limits': ['Poisson']})

        pManual = pa.addChild({
            'name': 'Manually set initial guess',
            'type': 'action'})

        pManual.sigActivated.connect(self._manualSetInitGuess)

        self._menu.aboutToShow.connect(self._updateMenu)