Source code for layer_viewer.layers.gray_image_layer

from  . layer_base import LayerBase
from .. widgets import TrippleToggleEye, ToggleEye, FractionSelectionBar
from .. pixel_path import *
from . layer_controller import *
import pyqtgraph as pg
import os
from pyqtgraph.Qt import QtCore, QtGui
import numpy

###############################################################################
from builtins import range
#from past.utils import old_div
import warnings
from PyQt5.QtCore import pyqtSignal, Qt, QEvent, QRect, QSize, QTimer, QPoint, QItemSelectionModel
from PyQt5.QtGui import QPainter, QFontMetrics, QFont, QPalette, QMouseEvent, QPixmap
from PyQt5.QtWidgets import QStyledItemDelegate, QWidget, QListView, QStyle, \
                            QLabel, QGridLayout, QSpinBox, QApplication


  

[docs]class GrayImageLayer(LayerBase): def __init__(self, name, data=None, autoLevels=True, levels=None, autoHistogramRange=False, cmap=None): super(GrayImageLayer, self).__init__(name=name) self.m_data = data self.m_autoLevels = autoLevels self.m_levels = levels self.m_autoHistogramRange = autoHistogramRange self.m_image_item = pg.ImageItem() if self.m_data is not None: self.m_image_item.setImage(self.m_data, autoLevels=self.m_autoLevels, levels=self.m_levels) self.m_ctrl_widget = LayerItemWidget(name=self.name, add_gradient_widgtet=True) self.viewer = None self.cmap = cmap if self.cmap is not None: self.m_ctrl_widget.gradientWidget.loadPreset(self.cmap)
[docs] def ctrl_widget(self): w = self.m_ctrl_widget w.toggleEye.setActive(True) def toogleEyeChanged(state): if self.viewer.m_exlusive_layer is not None: self.viewer.m_exlusive_layer.setVisible(True) self.viewer.m_exlusive_layer = None if state == 2: self.viewer.showAndHideOthers(self.name) else: self.setVisible(bool(state)) w.toggleEye.stateChanged.connect(toogleEyeChanged) w.bar.fractionChanged.connect(self.setOpacity) def update(): lut = w.gradientWidget.getLookupTable(512) self.m_image_item.setLookupTable(lut) w.gradientWidget.sigGradientChanged.connect(update) w.layer = self return w
[docs] def get_image_item(self): return self.m_image_item
[docs] def setOpacity(self, opacity): self.m_ctrl_widget.setFraction(opacity) self.m_image_item.setOpacity(opacity)
[docs] def setVisible(self, visible): self.m_ctrl_widget.toggleEye.setState(visible) self.m_image_item.setVisible(visible)
[docs] def setZValue(self, z): self.m_image_item.setZValue(z)
[docs] def updateData(self, image): self.m_image_item.updateImage(image)
[docs] def setData(self, image): self.m_image_item.setImage(image, autoLevels=self.m_autoLevels, levels=self.m_levels, autoHistogramRange=self.m_autoHistogramRange)