Beispiel #1
0
    def __init__(self, data, range=False, window_data=False, win_l=50, win_w=350):
        QtGui.QWidget.__init__(self)
        # self.ui = Ui_MainWindow()
        self.ui = Ui_Form()
        self.ui.setupUi(self)

        self.actual_slice = 0
        self.data = data
        self.n_slices = self.data.shape[0]
        self.range = range

        self.window_data = window_data
        self.win_l = win_l
        self.win_w = win_w

        # seting up the figure
        self.figure = plt.figure()
        self.axes = self.figure.add_axes([0, 0, 1, 1])
        self.canvas = FigureCanvas(self.figure)

        # conenction the wheel events
        self.canvas.mpl_connect('scroll_event', self.on_scroll)

        self.update_figures()

        data_viewer_layout = QtGui.QHBoxLayout()
        data_viewer_layout.addWidget(self.canvas)
        self.ui.viewer_F.setLayout(data_viewer_layout)

        # seting up the range of the scrollbar to cope with the number of slices
        self.ui.slice_scrollB.setMaximum(self.n_slices - 1)

        # connecting slider
        self.ui.slice_scrollB.valueChanged.connect(self.slider_changed)
Beispiel #2
0
    def __init__(self, data, range=False, parent=None):
        QtGui.QWidget.__init__(self, parent)
        # self.ui = Ui_MainWindow()
        self.ui = Ui_Form()
        self.ui.setupUi(self)

        self.actual_slice = 0
        self.data = data
        self.n_slices = self.data.shape[0]
        self.range = range

        # setting up the figure
        self.figure = plt.figure()
        self.axes = self.figure.add_axes([0, 0, 1, 1])
        self.canvas = FigureCanvas(self.figure)

        # layout = QtGui.QVBoxLayout()
        # layout.addWidget(self.canvas, 1)
        # self.setLayout(layout)
        # connection to wheel events
        self.canvas.mpl_connect('scroll_event', self.on_scroll)

        self.update_figures()

        self.data = data
        # adding widget for displaying image data
        # self.form_widget = Form_widget.Form_widget(self)
        data_viewer_layout = QtGui.QHBoxLayout()
        # data_viewer_layout.addWidget(self.form_widget)
        data_viewer_layout.addWidget(self.canvas)
        self.ui.viewer_F.setLayout(data_viewer_layout)

        # setting up the range of the scrollbar to cope with the number of slices
        self.ui.slice_scrollB.setMaximum(self.n_slices - 1)

        # connecting slider
        self.ui.slice_scrollB.valueChanged.connect(self.slider_changed)
Beispiel #3
0
    def __init__(self, data, range=False, parent=None):
        QtGui.QWidget.__init__(self, parent)
        # self.ui = Ui_MainWindow()
        self.ui = Ui_Form()
        self.ui.setupUi(self)

        self.actual_slice = 0
        self.data = data
        self.n_slices = self.data.shape[0]
        self.range = range

        # seting up the figure
        self.figure = plt.figure()
        self.axes = self.figure.add_axes([0, 0, 1, 1])
        self.canvas = FigureCanvas(self.figure)

        # layout = QtGui.QVBoxLayout()
        # layout.addWidget(self.canvas, 1)
        # self.setLayout(layout)
        # conenction to wheel events
        self.canvas.mpl_connect('scroll_event', self.on_scroll)

        self.update_figures()

        self.data = data
        # adding widget for displaying image data
        # self.form_widget = Form_widget.Form_widget(self)
        data_viewer_layout = QtGui.QHBoxLayout()
        # data_viewer_layout.addWidget(self.form_widget)
        data_viewer_layout.addWidget(self.canvas)
        self.ui.viewer_F.setLayout(data_viewer_layout)

        # seting up the range of the scrollbar to cope with the number of slices
        self.ui.slice_scrollB.setMaximum(self.n_slices - 1)

        # connecting slider
        self.ui.slice_scrollB.valueChanged.connect(self.slider_changed)
Beispiel #4
0
class Viewer_3D(QtGui.QWidget):
    """Main class of the program."""
    def __init__(self, data, range=False, parent=None):
        QtGui.QWidget.__init__(self, parent)
        # self.ui = Ui_MainWindow()
        self.ui = Ui_Form()
        self.ui.setupUi(self)

        self.actual_slice = 0
        self.data = data
        self.n_slices = self.data.shape[0]
        self.range = range

        # setting up the figure
        self.figure = plt.figure()
        self.axes = self.figure.add_axes([0, 0, 1, 1])
        self.canvas = FigureCanvas(self.figure)

        # layout = QtGui.QVBoxLayout()
        # layout.addWidget(self.canvas, 1)
        # self.setLayout(layout)
        # connection to wheel events
        self.canvas.mpl_connect('scroll_event', self.on_scroll)

        self.update_figures()

        self.data = data
        # adding widget for displaying image data
        # self.form_widget = Form_widget.Form_widget(self)
        data_viewer_layout = QtGui.QHBoxLayout()
        # data_viewer_layout.addWidget(self.form_widget)
        data_viewer_layout.addWidget(self.canvas)
        self.ui.viewer_F.setLayout(data_viewer_layout)

        # setting up the range of the scrollbar to cope with the number of slices
        self.ui.slice_scrollB.setMaximum(self.n_slices - 1)

        # connecting slider
        self.ui.slice_scrollB.valueChanged.connect(self.slider_changed)

    def update_figures(self):
        if self.range:
            vmin = self.data.min()
            vmax = self.data.max()
        else:
            vmin = 0
            vmax = 255
        slice = self.data[self.actual_slice, :, :]

        plt.figure(self.figure.number)
        plt.subplot(111)
        # self.figure.gca().cla()  # clearing the contours, just to be sure
        plt.imshow(slice,
                   'gray',
                   interpolation='nearest',
                   vmin=vmin,
                   vmax=vmax)

        self.canvas.draw()

    def slider_changed(self, val):
        self.slice_change(val)
        self.actual_slice = val
        self.update_figures()

    def slice_change(self, val):
        self.ui.slice_scrollB.setValue(val)
        self.ui.slice_number_LBL.setText('slice # = %i' % (val + 1))

    def next_slice(self):
        self.actual_slice += 1
        if self.actual_slice >= self.n_slices:
            self.actual_slice = 0

    def prev_slice(self):
        self.actual_slice -= 1
        if self.actual_slice < 0:
            self.actual_slice = self.n_slices - 1

    def on_scroll(self, event):
        '''mouse wheel is used for setting slider value'''
        if event.button == 'up':
            self.next_slice()
        if event.button == 'down':
            self.prev_slice()
        self.update_figures()
        self.slice_change(self.actual_slice)
Beispiel #5
0
class Viewer_3D(QtGui.QWidget):
    """Main class of the programm."""

    def __init__(self, data, range=False, parent=None):
        QtGui.QWidget.__init__(self, parent)
        # self.ui = Ui_MainWindow()
        self.ui = Ui_Form()
        self.ui.setupUi(self)

        self.actual_slice = 0
        self.data = data
        self.n_slices = self.data.shape[0]
        self.range = range

        # seting up the figure
        self.figure = plt.figure()
        self.axes = self.figure.add_axes([0, 0, 1, 1])
        self.canvas = FigureCanvas(self.figure)

        # layout = QtGui.QVBoxLayout()
        # layout.addWidget(self.canvas, 1)
        # self.setLayout(layout)
        # conenction to wheel events
        self.canvas.mpl_connect('scroll_event', self.on_scroll)

        self.update_figures()

        self.data = data
        # adding widget for displaying image data
        # self.form_widget = Form_widget.Form_widget(self)
        data_viewer_layout = QtGui.QHBoxLayout()
        # data_viewer_layout.addWidget(self.form_widget)
        data_viewer_layout.addWidget(self.canvas)
        self.ui.viewer_F.setLayout(data_viewer_layout)

        # seting up the range of the scrollbar to cope with the number of slices
        self.ui.slice_scrollB.setMaximum(self.n_slices - 1)

        # connecting slider
        self.ui.slice_scrollB.valueChanged.connect(self.slider_changed)

    def update_figures(self):
        if self.range:
            vmin = self.data.min()
            vmax = self.data.max()
        else:
            vmin = 0
            vmax = 255
        slice = self.data[self.actual_slice, :, :]

        plt.figure(self.figure.number)
        plt.subplot(111)
        # self.figure.gca().cla()  # clearing the contours, just to be sure
        plt.imshow(slice, 'gray', interpolation='nearest', vmin=vmin, vmax=vmax)

        self.canvas.draw()

    def slider_changed(self, val):
        self.slice_change(val)
        self.actual_slice = val
        self.update_figures()

    def slice_change(self, val):
        self.ui.slice_scrollB.setValue(val)
        self.ui.slice_number_LBL.setText('slice # = %i' % (val + 1))

    def next_slice(self):
        self.actual_slice += 1
        if self.actual_slice >= self.n_slices:
            self.actual_slice = 0

    def prev_slice(self):
        self.actual_slice -= 1
        if self.actual_slice < 0:
            self.actual_slice = self.n_slices - 1

    def on_scroll(self, event):
        '''mouse wheel is used for setting slider value'''
        if event.button == 'up':
            self.next_slice()
        if event.button == 'down':
            self.prev_slice()
        self.update_figures()
        self.slice_change(self.actual_slice)
Beispiel #6
0
class Viewer_3D(QtGui.QWidget):
    """Main class of the programm."""

    def __init__(self, data, range=False, window_data=False, win_l=50, win_w=350):
        QtGui.QWidget.__init__(self)
        # self.ui = Ui_MainWindow()
        self.ui = Ui_Form()
        self.ui.setupUi(self)

        self.actual_slice = 0
        self.data = data
        self.n_slices = self.data.shape[0]
        self.range = range

        self.window_data = window_data
        self.win_l = win_l
        self.win_w = win_w

        # seting up the figure
        self.figure = plt.figure()
        self.axes = self.figure.add_axes([0, 0, 1, 1])
        self.canvas = FigureCanvas(self.figure)

        # conenction the wheel events
        self.canvas.mpl_connect('scroll_event', self.on_scroll)

        self.update_figures()

        data_viewer_layout = QtGui.QHBoxLayout()
        data_viewer_layout.addWidget(self.canvas)
        self.ui.viewer_F.setLayout(data_viewer_layout)

        # seting up the range of the scrollbar to cope with the number of slices
        self.ui.slice_scrollB.setMaximum(self.n_slices - 1)

        # connecting slider
        self.ui.slice_scrollB.valueChanged.connect(self.slider_changed)

    def update_figures(self):
        if self.range:
            vmin = self.data.min()
            vmax = self.data.max()
        elif self.window_data:
            vmin = self.win_l - self.win_w / 2
            vmax = self.win_l + self.win_w / 2
        else:
            vmin = 0
            vmax = 255
        slice = self.data[self.actual_slice, :, :]

        plt.figure(self.figure.number)
        plt.subplot(111)
        plt.imshow(slice, 'gray', interpolation='nearest', vmin=vmin, vmax=vmax)
        self.canvas.draw()

    def slider_changed(self, val):
        self.slice_change(val)
        self.actual_slice = val
        self.update_figures()

    def slice_change(self, val):
        self.ui.slice_scrollB.setValue(val)
        self.ui.slice_number_LBL.setText('slice # = %i' % (val + 1))

    def next_slice(self):
        self.actual_slice += 1
        if self.actual_slice >= self.n_slices:
            self.actual_slice = 0

    def prev_slice(self):
        self.actual_slice -= 1
        if self.actual_slice < 0:
            self.actual_slice = self.n_slices - 1

    def on_scroll(self, event):
        '''mouse wheel is used for setting slider value'''
        if event.button == 'down':
            self.next_slice()
        if event.button == 'up':
            self.prev_slice()
        self.update_figures()
        self.slice_change(self.actual_slice)

    def keyPressEvent(self, QKeyEvent):
        if QKeyEvent.key() == QtCore.Qt.Key_Escape:
            self.close()