Exemplo n.º 1
0
class QtPlotter(object):
    def __init__(self, app):
        super(QtPlotter, self).__init__()
        self.app = app
        self.create_QtPlotter()
        self.data = None

    def create_QtPlotter(self):
        self.RAW = 1
        if self.RAW:
            self.win = QtGui.QMainWindow()
            self.win.resize(400, 400)
            self.rawImg = RawImageWidget(self.win, scaled=True)
            self.win.setCentralWidget(self.rawImg)
            self.win.show()
        else:
            self.win = pg.GraphicsLayoutWidget()
            self.win.show()
            self.win.setWindowTitle("TART2 - Live View")
            view = self.win.addViewBox()
            view.setAspectLocked(True)
            self.img = pg.ImageItem(border="w")
            view.addItem(self.img)
        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self.update)
        self.timer.start(0)
        self.q = Queue()

    def getPort(self):
        return self.q

    def update(self):
        # qsize = self.q.qsize()
        # print 'PlotQ size',qsize
        # if qsize > 2:
        # [self.q.get() for _ in range(qsize-1)]
        # print '!!!!!!!!!!!!!!!!!!!!!! dropping frames when displaying  !!!!!!!!!!!!!!!!!!!!!!!!!!!!'
        a = time.time()
        if not self.q.empty():
            # while not self.q.empty():
            # print self.q.qsize()
            # if self.data is None:
            self.data = self.q.get()
            # else:
            # self.data[:] = self.q.get()
            # print 'drop drop drop.'
            # print data[0]
            b = time.time()
            print(b - a, "getting data off queue")
            if self.RAW:
                d_max = self.data.max()
                self.data /= d_max
                self.data *= 255
                self.rawImg.setImage(self.data)
            else:
                self.data -= self.data.min()
                self.data /= self.data.max()
                self.data *= 255
                # self.img.setImage(data,autoRange=True,autoLevels=True)
                self.img.setImage(self.data)
            self.app.processEvents()
            c = time.time()
            print(c - b, "update done.")
# init viewer application
viewer_app = QtGui.QApplication([])

# define window and set layout
viewer_window = QtGui.QWidget()
viewer_window.setWindowTitle("Retina Simulation")
viewer_window.setFixedSize(win_width, win_height)
viewer_layout = QtGui.QGridLayout()
viewer_window.setLayout(viewer_layout)

# Frame widgets
frame_wg = QtGui.QWidget()
frame_layout = QtGui.QHBoxLayout()
frame_wg.setLayout(frame_layout)
draw_frame = RawImageWidget()
draw_frame.setImage(bg_frame)
draw_parvo = RawImageWidget()
draw_parvo.setImage(bg_frame)
draw_magno = RawImageWidget()
draw_magno.setImage(bg_frame)

frame_layout.addWidget(draw_frame)
frame_layout.addWidget(draw_parvo)
frame_layout.addWidget(draw_magno)

# IPL and OPL Parvo Parameters Widget
PARVO_wg = QtGui.QWidget()
PARVO_layout = QtGui.QFormLayout()
PARVO_layout.setRowWrapPolicy(QtGui.QFormLayout.DontWrapRows)
PARVO_layout.setFieldGrowthPolicy(QtGui.QFormLayout.FieldsStayAtSizeHint)
PARVO_layout.setFormAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignTop)
Exemplo n.º 3
0
# init viewer application
viewer_app = QtGui.QApplication([])

# define window and set layout
viewer_window = QtGui.QWidget()
viewer_window.setWindowTitle("Retina Simulation")
viewer_window.setFixedSize(win_width, win_height)
viewer_layout = QtGui.QGridLayout()
viewer_window.setLayout(viewer_layout)

# Frame widgets
frame_wg = QtGui.QWidget()
frame_layout = QtGui.QHBoxLayout()
frame_wg.setLayout(frame_layout)
draw_frame = RawImageWidget()
draw_frame.setImage(bg_frame)
draw_parvo = RawImageWidget()
draw_parvo.setImage(bg_frame)
draw_magno = RawImageWidget()
draw_magno.setImage(bg_frame)

frame_layout.addWidget(draw_frame)
frame_layout.addWidget(draw_parvo)
frame_layout.addWidget(draw_magno)

# IPL and OPL Parvo Parameters Widget
PARVO_wg = QtGui.QWidget()
PARVO_layout = QtGui.QFormLayout()
PARVO_layout.setRowWrapPolicy(QtGui.QFormLayout.DontWrapRows)
PARVO_layout.setFieldGrowthPolicy(QtGui.QFormLayout.FieldsStayAtSizeHint)
PARVO_layout.setFormAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignTop)