Example #1
0
	def __init__(self, **keywords):
		"""
		2008-10-08
			simplified further by moving db-common lines to ElixirDB
		2008-07-09
		"""
		from ProcessOptions import ProcessOptions
		ProcessOptions.process_function_arguments(keywords, self.option_default_dict, error_doc=self.__doc__, class_to_have_attr=self)
		self.setup_engine(metadata=__metadata__, session=__session__, entities=entities)
Example #2
0
    def __init__(self, parent=None, tiffSequence=None, cropL=None):
        PyQt4.QtGui.QMainWindow.__init__(self, parent=parent)
        self.setupUi(self)
        #l = dir(self.CurrentFrameSlider)
        #for i in l:
        #	print(i)
        self.RoboMainWnd = parent

        hlay = PyQt4.QtGui.QHBoxLayout(self.ImageFrameWidget)
        imWidget = ImageDisplayWidget(self)

        self.imWidget = imWidget
        hlay.addWidget(imWidget)

        self.imWidget.createShaders()

        if tiffSequence is not None:
            self.tiffSequence = tiffSequence
            try:
                img2 = tiffSequence.getFramesInterval(1, 10)
                img = img2.mean(2)
            except:
                img = tiffSequence.getFrame(0)
        else:
            self.close()

        self.connect(self.imWidget, SIGNAL("roiAdded(long)"), self.roiAdded)
        self.connect(self.imWidget, SIGNAL("roiRecomputeNeeded(bool)"),
                     self.roiAdded)

        self.imWidget.computeRoiPointMaps = False
        self.frameHeight = img.shape[
            0]  # int(ceil(sqrt(img.shape[0]**2 + img.shape[1]**2)))
        self.frameWidth = img.shape[1]  #self.frameHeight
        self.optionsDlg = ProcessOptions(self)
        self.roiMonitor = False
        self.imWidget.ImageZoom = 0.3
        self.imWidget.ImageZoomSteps = -5.4

        if cropL is not None:
            a, b, c, d = cropL
            roi = Roi()
            roi.addPoint(a, c)
            roi.addPoint(b, c)
            roi.addPoint(b, d)
            roi.addPoint(a, d)
            self.imWidget.addRoi(roi, False)
        self.FrameImage, self.FrameData = self.loadImageGray(img)
        self.updateDisplay()
        self.show()
Example #3
0
    def __init__(self, **keywords):
        """
		2008-07-29
		"""
        from ProcessOptions import ProcessOptions
        self.ad = ProcessOptions.process_function_arguments(keywords, self.option_default_dict, error_doc=self.__doc__, \
                    class_to_have_attr=self)
Example #4
0
    def __init__(self, **keywords):
        """
		2008-08-29
		"""
        from ProcessOptions import ProcessOptions

        self.ad = ProcessOptions.process_function_arguments(
            keywords, self.option_default_dict, error_doc=self.__doc__, class_to_have_attr=self
        )
Example #5
0
class PreviewDisplay(Ui_PreviewDisplayWnd, PyQt4.QtGui.QMainWindow):
    def __init__(self, parent=None, tiffSequence=None, cropL=None):
        PyQt4.QtGui.QMainWindow.__init__(self, parent=parent)
        self.setupUi(self)
        #l = dir(self.CurrentFrameSlider)
        #for i in l:
        #	print(i)
        self.RoboMainWnd = parent

        hlay = PyQt4.QtGui.QHBoxLayout(self.ImageFrameWidget)
        imWidget = ImageDisplayWidget(self)

        self.imWidget = imWidget
        hlay.addWidget(imWidget)

        self.imWidget.createShaders()

        if tiffSequence is not None:
            self.tiffSequence = tiffSequence
            try:
                img2 = tiffSequence.getFramesInterval(1, 10)
                img = img2.mean(2)
            except:
                img = tiffSequence.getFrame(0)
        else:
            self.close()

        self.connect(self.imWidget, SIGNAL("roiAdded(long)"), self.roiAdded)
        self.connect(self.imWidget, SIGNAL("roiRecomputeNeeded(bool)"),
                     self.roiAdded)

        self.imWidget.computeRoiPointMaps = False
        self.frameHeight = img.shape[
            0]  # int(ceil(sqrt(img.shape[0]**2 + img.shape[1]**2)))
        self.frameWidth = img.shape[1]  #self.frameHeight
        self.optionsDlg = ProcessOptions(self)
        self.roiMonitor = False
        self.imWidget.ImageZoom = 0.3
        self.imWidget.ImageZoomSteps = -5.4

        if cropL is not None:
            a, b, c, d = cropL
            roi = Roi()
            roi.addPoint(a, c)
            roi.addPoint(b, c)
            roi.addPoint(b, d)
            roi.addPoint(a, d)
            self.imWidget.addRoi(roi, False)
        self.FrameImage, self.FrameData = self.loadImageGray(img)
        self.updateDisplay()
        self.show()

    def loadImageGray(self, im, needQImage=True):

        if im is None:
            return None

        # if self.displayParameters.autoAdjust:
        # 	self.changeDisplayGrayMin(im.min())
        # 	self.changeDisplayGrayMax(im.max())

        #if viewType == 0:
        tex = self.imWidget.processData(list([im]), list([0]),
                                        list([list([im.min(),
                                                    im.max()])]))
        return tex, im
        #else:
        #	return None, None

    def updateDisplay(self):

        if self.FrameImage == None:
            return

        h, w = self.frameHeight, self.frameWidth

        self.imWidget.currentDrawData["tex"] = self.FrameImage
        self.imWidget.currentDrawData["width"] = w
        self.imWidget.currentDrawData["height"] = h
        self.imWidget.updateGL()

    def roiAdded(self):
        if len(self.imWidget.rois) > 1:
            self.imWidget.deleteRoi(0)

        rf = self.imWidget.rois[0].boundingRect()
        [a, b, c, d] = [
            rf.left(),
            rf.left() + rf.width(),
            rf.top(),
            rf.top() + rf.height()
        ]
        #	print [a,b,c,d]
        self.emit(SIGNAL("roiChanged(int, int, int, int)"), a, b, c, d)

    def closeEvent(self, event):
        # do stuff

        self.optionsDlg.close()
        event.accept()  # let the window close
Example #6
0
    def closeLogF(self):
        """
		2012.11.18
		"""
        if getattr(self, 'logF', None):
            self.logF.close()

    def sessionRollback(self, session=None):
        """
		2013.04.05
			wrap try...except around it because sometimes db connection is gone halfway through
			and it causes program to exit without proper cleanup
		"""
        try:
            session.rollback()
        except:
            sys.stderr.write('Except type: %s\n' % repr(sys.exc_info()))
            import traceback
            traceback.print_exc()

    def run(self):
        pass


if __name__ == '__main__':
    main_class = AbstractDBInteractingClass
    po = ProcessOptions(sys.argv,
                        main_class.option_default_dict,
                        error_doc=main_class.__doc__)
    instance = main_class(**po.long_option2value)
    instance.run()