def plot_colormap(self, x, y, z, num_contours=5, contour_spacing_dB=5): """Plot *x*, *y* and *z* on a colourmap, with colour intervals defined by *num_contours* at *contour_spacing_dB* intervals.""" #self.PlotWidget.removeItem(self.z_img) self.x = x self.y = y self.z = z self.num_contours = num_contours self.contour_spacing_dB = contour_spacing_dB self.update_lowest_contour() # Set up axes: x_axis = self.PlotWidget.getAxis('bottom') y_axis = self.PlotWidget.getAxis('left') self.x_scale_fact = self.get_scale_fact(x) self.y_scale_fact = self.get_scale_fact(y) x_axis.setScale(self.x_scale_fact) y_axis.setScale(self.y_scale_fact) #self.autoRange() self.z_img = ImageItem(z.transpose()) self.z_img.setLookupTable(self.lookup_table) self.z_img.setLevels([self.lowest_contour, self.highest_contour]) self.PlotWidget.addItem(self.z_img) self.PlotWidget.autoRange()
def __init__(self, diff, parent=None): super(SideView, self).__init__(parent=parent) self.parent = parent self.brain = parent.brain self.diff = diff self.view1 = ViewBox() self.setCentralItem(self.view1) # Making Images out of data self.brain.section = (self.brain.section + self.diff) % 3 self.i = int(self.brain.shape[self.brain.section] / 2) data_slice = self.brain.get_data_slice(self.i) self.brain_img1 = ImageItem( data_slice, autoDownsample=False, compositionMode=QtGui.QPainter.CompositionMode_SourceOver) self.brain.section = (self.brain.section - self.diff) % 3 self.view1.addItem(self.brain_img1) self.view1.setAspectLocked(True) self.view1.setFixedHeight(250) self.view1.setFixedWidth(250) self.setMinimumHeight(250) self.vLine = InfiniteLine(angle=90, movable=False) self.hLine = InfiniteLine(angle=0, movable=False) self.vLine.setVisible(False) self.hLine.setVisible(False) self.view1.addItem(self.vLine, ignoreBounds=True) self.view1.addItem(self.hLine, ignoreBounds=True)
def __init__(self, model_wrapper, statusbar, parent=None): """ The Plot2DWidget is responsible for rendering the 2D chromatogram data. :param model_wrapper: the wrapper of the model. :param parent: the parent of this Widget. """ super().__init__(parent=parent) self.listener = Plot2DListener(self, model_wrapper, statusbar) """ The listener for the 2D plot """ self.img = ImageItem() """ The image of the chromatogram""" self.wrapper_temp = model_wrapper # TEMPORARY TODO What is this for? """A temporary reference to the wrapper?""" # Add the image to the plot. self.addItem(self.img) # Disable right click context menu. self.getPlotItem().setMenuEnabled(False) self.getPlotItem().getAxis('bottom').enableAutoSIPrefix(False) self.getPlotItem().getAxis('left').enableAutoSIPrefix(False) model_wrapper.add_observer(self, self.notify) # call notify to draw the model. NOTE: The if statement isn't nesessary, it checks in notify if there is # a model or not. self.notify('model', model_wrapper.model)
def update_img(self, i: int, j: int, img: pg.ImageItem): """Template function for creating image update callback functions. i is the row axis, j is the col axis corresponding to the image. xy is 0, 1 and zy is 2, 1""" data_slice = [self.cursor.index[i].val for i in range(self.data.ndim)] data_slice[i] = slice(None) data_slice[j] = slice(None) if j > i: img.setImage(self.data_slice2d(i, j)) else: img.setImage(self.data_slice2d(i, j).T)
def addImageMsg(self, img=DEFAULT_IMG, lr=True, head=DEFAULT_HEAD): it = QListWidgetItem(self) wid = self.size().width() item = ImageItem(it, self, img, lr, head) #增加必须指定本list和本item用于删除item # item.setEnabled(False) #对象灰度显示,不能导致ITEM不可选 it.setSizeHint(item.sizeHint()) it.setFlags(Qt.ItemIsEnabled) # 设置Item不可选择 self.addItem(it) self.setItemWidget(it, item) self.setCurrentItem(it)
def __init_ui__(self): self.setWindowTitle('Image Viewer') self.image_plot = self.addPlot() self.image_plot.vb.setAspectLocked() self.image_plot.vb.invertY() self.image_item = ImageItem() self.image_plot.addItem(self.image_item) self.hist = HistogramLUTItem() self.hist.setImageItem(self.image_item) self.addItem(self.hist)
def _update_preview_image(image_data: Optional[np.ndarray], image: ImageItem, redraw_histogram: Optional[Callable[[Any], None]]): image.clear() image.setImage(image_data) if redraw_histogram: # Update histogram redraw_histogram(image.getHistogram())
def __init__(self, parent=None, **kwargs): super(FilterPreviews, self).__init__(parent, **kwargs) widget_location = self.mapToGlobal(QPoint(self.width() / 2, 0)) # allow the widget to take up to 80% of the desktop's height self.ALLOWED_HEIGHT: QRect = QGuiApplication.screenAt(widget_location).availableGeometry().height() * 0.8 self.before_histogram_data = None self.after_histogram_data = None self.histogram = None self.before_histogram = None self.after_histogram = None self.combined_histograms = True self.histogram_legend_visible = True self.addLabel("Image before") self.addLabel("Image after") self.addLabel("Image difference") self.nextRow() self.image_before, self.image_before_vb, self.image_before_hist = self.image_in_vb(name="before") self.image_after, self.image_after_vb, self.image_after_hist = self.image_in_vb(name="after") self.image_difference, self.image_difference_vb, self.image_difference_hist = self.image_in_vb( name="difference") self.image_after_overlay = ImageItem() self.image_after_overlay.setZValue(10) self.image_after_vb.addItem(self.image_after_overlay) # Ensure images resize equally self.image_layout: GraphicsLayout = self.addLayout(colspan=6) self.image_layout.addItem(self.image_before_vb, 0, 0) self.image_layout.addItem(self.image_before_hist, 0, 1) self.image_layout.addItem(self.image_after_vb, 0, 2) self.image_layout.addItem(self.image_after_hist, 0, 3) self.image_layout.addItem(self.image_difference_vb, 0, 4) self.image_layout.addItem(self.image_difference_hist, 0, 5) self.nextRow() before_details = self.addLabel("") after_details = self.addLabel("") difference_details = self.addLabel("") self.display_formatted_detail = { self.image_before: lambda val: before_details.setText(f"Before: {val:.6f}"), self.image_after: lambda val: after_details.setText(f"After: {val:.6f}"), self.image_difference: lambda val: difference_details.setText(f"Difference: {val:.6f}"), } for img in self.image_before, self.image_after, self.image_difference: img.hoverEvent = lambda ev: self.mouse_over(ev) self.init_histogram()
class Image: """requires that parser would initialize self.image_array""" def gen_icon(self): qimage = QImage(self.image_array, self.image_array.shape[1], self.image_array.shape[0], QImage.Format_Grayscale8) self.icon = QIcon(QPixmap(qimage)) def gen_image_item(self, height, width): self.pg_image_item = ImageItem(self.image_array) self.pg_image_item.setRect(QRectF(0, height, width, -height))
def __init__(self, parent=None): """Initialize the class. Parameters ---------- parent : None, optional Top-level widget. """ super().__init__(parent) p1 = self.addPlot() p1.setAspectLocked(True) self.image = ImageItem() self.image.setOpts(axisOrder='row-major') p1.addItem(self.image)
def __init__(self): super(PreviewWidget, self).__init__() self.setMinimumHeight(250) self.setMinimumWidth(250) self.view = self.addViewBox(lockAspect=True, enableMenu=False) self.imageitem = ImageItem() self.textitem = TextItem(anchor=(0.5, 0)) self.textitem.setFont(QFont('Zero Threes')) self.imgdata = None self.view.addItem(self.imageitem) self.view.addItem(self.textitem) self.textitem.hide() self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
def __init__(self): super(Bp2DWidget, self).__init__() # M.B. plot add to params self.setXRange(-60, 60) self.setYRange(-60, 60) self.img = ImageItem() self.addItem(self.img) _translate = QCoreApplication.translate self.setLabels(title=_translate("Bp2DWidget", "Beam pattern"), left=_translate("Bp2DWidget", "Elevation, °"), bottom=_translate("Bp2DWidget", "Azimuth, °")) self.setLogMode() colormap = ColorMap(*zip(*Gradients["bipolar"]["ticks"])) self.img.setLookupTable(colormap.getLookupTable())
def _init_ui(self, **kwargs): self.setWindowTitle('Image Viewer') self.image_plot = self.addPlot(**kwargs) self.image_plot.vb.setAspectLocked() self.image_plot.vb.invertY() self.image_item = ImageItem() self.image_plot.addItem(self.image_item) self.image_plot.setMenuEnabled(False) self.hist = HistogramLUTItem() self.hist.setImageItem(self.image_item) self.addItem(self.hist) self.hist.vb.menu = CustomViewBoxMenu(self.hist.vb) self.hist.vb.menu.sigSigmaChanged.connect(self.set_sigma_factor) self.hist.vb.menu.sigRangeAsDefault.connect(self.set_limit_as_default) self.hist.vb.menu.sigUseClahe.connect(self.enable_clahe)
def __init__(self, parent=None, **kwargs): super(FilterPreviews, self).__init__(parent, **kwargs) self.before_histogram_data = None self.after_histogram_data = None self.histogram = None self.before_histogram = None self.after_histogram = None self.combined_histograms = True self.histogram_legend_visible = True self.addLabel("Image before") self.addLabel("Image after") self.addLabel("Image difference") self.nextRow() self.image_before, self.image_before_vb = self.image_in_vb( name="before") self.image_after, self.image_after_vb = self.image_in_vb(name="after") self.image_difference, self.image_difference_vb = self.image_in_vb( name="difference") self.image_after_overlay = ImageItem() self.image_after_overlay.setZValue(10) self.image_after_vb.addItem(self.image_after_overlay) # Ensure images resize equally image_layout = self.addLayout(colspan=3) image_layout.addItem(self.image_before_vb, 0, 0) image_layout.addItem(self.image_after_vb, 0, 1) image_layout.addItem(self.image_difference_vb, 0, 2) self.nextRow() before_details = self.addLabel("") after_details = self.addLabel("") difference_details = self.addLabel("") self.display_formatted_detail = { self.image_before: lambda val: before_details.setText(f"Before: {val:.6f}"), self.image_after: lambda val: after_details.setText(f"After: {val:.6f}"), self.image_difference: lambda val: difference_details.setText(f"Difference: {val:.6f}"), } for img in self.image_before, self.image_after, self.image_difference: img.hoverEvent = lambda ev: self.mouse_over(ev)
def __init__(self, parent=None): # initialization of Qt MainWindow widget super(PyqtgraphGraphicsWidget, self).__init__(parent) # # set the "canvas" to the RawImage widget # self.rawImg = RawImageWidget(QWidget()) # # create a vertical box layout # self.vbl = QVBoxLayout() # # add widget to vertical box # self.vbl.addWidget(self.rawImg) # # set the layout to the vertical box # self.setLayout(self.vbl) # Create a central Graphics Layout Widget self.widget = GraphicsLayoutWidget() # self.setCentralWidget(self.win) # A plot area (ViewBox + axes) for displaying the image self.p1 = self.widget.addPlot() # Item for displaying image data self.img = ImageItem() self.p1.addItem(self.img) # create a vertical box layout self.vbl = QVBoxLayout() # add widget to vertical box self.vbl.addWidget(self.widget) # set the layout to the vertical box self.setLayout(self.vbl)
def set_current_imageitem(self, imageitem: ImageItem): if self.current_image_item: self.current_image_item.deactivate() self.current_image_item = imageitem self.current_view = imageitem.getViewBox() self.current_image_item.activate() self.hist_widget.item.setImageItem(self.current_image_item)
def img_hover_handler(self, i: int, j: int, img: pg.ImageItem, evt: HoverEvent): """Template function for image hover handler i should be index for the x-axis j should be index for the y-axis img is a reference to the image""" if not evt.isExit(): self.mouse_panel = 'img_' + self.index_to_coord[ i] + self.index_to_coord[j] mousepnt = img.transform().map(evt.pos()) self.mouse_pos = mousepnt pos = np.array([x.value for x in self.cursor.pos]) pos[i] = mousepnt.x() pos[j] = mousepnt.y() idx = np.round( (pos - self.data.coord_min) / self.data.delta).astype(np.int) if self.data.ndim == 2: self.status_bar = "{0:#.3g} : x = {1:#.3g}, y = {2:#.3g} [{3:d},{4:d}]".format( self.data.values[tuple(idx)], *tuple(pos), *tuple(idx)) elif self.data.ndim == 3: self.status_bar = "{0:#.3g} : x = {1:#.3g}, y = {2:#.3g}, z = {3:#.3g} [{4:d},{5:d},{6:d}]".format( self.data.values[tuple(idx)], *tuple(pos), *tuple(idx)) elif self.data.ndim == 4: self.status_bar = "{0:#.3g} : x = {1:#.3g}, y = {2:#.3g}, z = {3:#.3g}, t = {4:#.4g} [{5:d},{6:d},{7:d},{8:d}]".format( self.data.values[tuple(idx)], *tuple(pos), *tuple(idx)) else: raise RuntimeError( "The data ndim for an image is not 2, 3, or 4") self.mouse_hover.emit(self.status_bar) if self.shift_down: self.set_crosshair_to_mouse()
def __init__(self, slice_direction, parent=None, xlink=None, ylink=None): super(SliceableGraphicsView, self).__init__(parent=parent) self.slice_direction = slice_direction self.setContentsMargins(0, 0, 0, 0) # Add axes self.view = SliceableAxes(slice_direction) self.view.axes["left"]["item"].setZValue(10) self.view.axes["top"]["item"].setZValue(10) self.setCentralItem(self.view) for sig in [ 'sigToggleVerticalSlice', 'sigToggleHorizontalSlice', 'sigToggleDepthSlice', 'sigMakePrimary' ]: if hasattr(self.view, sig): getattr(self.view, sig).connect(getattr(self, sig)) # Add imageitem self.image_item = ImageItem(axisOrder='row-major') self.image_item.setOpts() self.view.addItem(self.image_item) # add crosshair self.crosshair = BetterCrosshairROI((0, 0), parent=self.view, resizable=False) self.crosshair.sigMoved.connect(self.sigCrosshairMoved) self.view.getViewBox().addItem(self.crosshair) # find top-level parent NDImageView while not isinstance(parent, NDImageView): parent = parent.parent() # Initialize lut, levels self.image_item.setLevels(parent.levels, update=True) self.image_item.setLookupTable(parent.lut, update=True) # Link axes if ylink: self.view.vb.setYLink(ylink) if xlink: self.view.vb.setXLink(xlink)
def __init__(self, parent: QWidget): GraphicsView.__init__(self, parent) layout = GraphicsLayout() self.setCentralItem(layout) self._image_item = ImageItem() self.viewbox = ViewBox(layout, lockAspect=True, invertY=True) self.viewbox.addItem(self._image_item) layout.addItem(self.viewbox) self.scale = ScaleBar(size=10, suffix='μm') self.scale.setParentItem(self.viewbox) self.scale.anchor((1, 1), (1, 1), offset=(-20, -20)) self.scale.hide() self._show_mask = False self.blend_mode = QPainter.CompositionMode_Screen self.items: List[ChannelImageItem] = None
class CamView(PlotWidget): def __init__(self, cam: Cam, parent=None) -> None: super().__init__(parent=parent) self.cam = cam self.main_plot_item = self.plotItem self.last_centers: List[Tuple[float]] = [] self.image_item = ImageItem(cam.read_cam()) #cmap = colormap.get('CET-C2') #self.image_item.setLookupTable(cmap.getLookupTable()) self.target = TargetItem(movable=False) self.main_plot_item.addItem(self.image_item) self.main_plot_item.addItem(self.target) self.iso_curve = IsocurveItem() self.iso_curve.setParentItem(self.image_item) self.iso_curve2 = IsocurveItem() self.iso_curve2.setParentItem(self.image_item) self.main_plot_item.addItem(self.iso_curve) self.center_hist = self.main_plot_item.plot(pen='r') self.update_cam() @Slot() def update_cam(self): #print('update') image = self.cam.last_image self.image_item.setImage(image) if not self.cam.last_fit is None: lf = self.cam.last_fit center = (lf.params['x0'], lf.params['y0']) self.target.setPos(*center) self.last_centers = [center] + self.last_centers[:30] self.iso_curve.setData(lf.best_fit, lf.best_fit.max() * 0.5) self.iso_curve2.setData(lf.best_fit, lf.best_fit.max() * np.exp(-2)) arr = np.array(self.last_centers) self.center_hist.setData(x=arr[:, 0], y=arr[:, 1]) @Slot() def reset_hist(self): self.last_centers = []
def __init__(self): super(SliceableGraphicsView, self).__init__() self.setContentsMargins(0, 0, 0, 0) # Add axes self.view = SliceableAxes() self.view.axes["left"]["item"].setZValue(10) self.view.axes["top"]["item"].setZValue(10) self.setCentralItem(self.view) self.view.sigToggleVerticalSlice.connect(self.sigToggleVerticalSlice) self.view.sigToggleHorizontalSlice.connect(self.sigToggleHorizontalSlice) self.view.sigMakePrimary.connect(self.sigMakePrimary) # Add imageitem self.image_item = ImageItem() self.view.addItem(self.image_item) # add crosshair self.crosshair = BetterCrosshairROI((0, 0), parent=self.view, resizable=False) self.view.getViewBox().addItem(self.crosshair)
def initializeModel(self, sliceLoc=0, sliceIndex=0): self.thisSliceLoc = sliceLoc self.thisSliceIndex = 0 self.T_MRI_Ref = np.eye(4) self.T_patient_pixels = np.eye(4) self.T_pixels_patient = np.eye(4) self.PlottableContours = {} self.sliceIndGauge.setText("Slice 0 / 0") self.depthGauge.setText("0.0 mm") self.currentUID = 0 self.UID_zero = 0 self.PlottableImage = ImageItem()
def __init__(self, cam: Cam, parent=None) -> None: super().__init__(parent=parent) self.cam = cam self.main_plot_item = self.plotItem self.last_centers: List[Tuple[float]] = [] self.image_item = ImageItem(cam.read_cam()) #cmap = colormap.get('CET-C2') #self.image_item.setLookupTable(cmap.getLookupTable()) self.target = TargetItem(movable=False) self.main_plot_item.addItem(self.image_item) self.main_plot_item.addItem(self.target) self.iso_curve = IsocurveItem() self.iso_curve.setParentItem(self.image_item) self.iso_curve2 = IsocurveItem() self.iso_curve2.setParentItem(self.image_item) self.main_plot_item.addItem(self.iso_curve) self.center_hist = self.main_plot_item.plot(pen='r') self.update_cam()
class Bp2DWidget(PlotWidget): def __init__(self): super(Bp2DWidget, self).__init__() # M.B. plot add to params self.setXRange(-60, 60) self.setYRange(-60, 60) self.img = ImageItem() self.addItem(self.img) _translate = QCoreApplication.translate self.setLabels(title=_translate("Bp2DWidget", "Beam pattern"), left=_translate("Bp2DWidget", "Elevation, °"), bottom=_translate("Bp2DWidget", "Azimuth, °")) self.setLogMode() colormap = ColorMap(*zip(*Gradients["bipolar"]["ticks"])) self.img.setLookupTable(colormap.getLookupTable()) #gradient_legend = GradientLegend(10, 10) #self.addItem(gradient_legend) @pyqtSlot() def on_data_changed(self): sender = self.sender() self.img.setImage(np.rot90(sender.data, -1)) self.img.setRect(self.__ensure_rect(np.shape(sender.data))) def __ensure_rect(self, shape): x_offset = 120. / (shape[0]-1) / 2 y_offset = 120. / (shape[1]-1) / 2 return QRectF(-60 - x_offset, 60 + y_offset, 120 + x_offset * 2, -120 - y_offset * 2)
def populate_spectrogram_widget(self, widget: GraphicsLayoutWidget, game_name: str, player_name: PlayerName, electrode_name: str): # https://stackoverflow.com/questions/51312923/plotting-the-spectrum-of-a-wavfile-in-pyqtgraph-using-scipy-signal-spectrogram f, t, Sxx = self._acquire_spectrogram_signal(game_name, player_name, electrode_name) plot = widget.addPlot() plot.setTitle('Frequency over time for electrode %s' % ELECTRODES[electrode_name]) img = ImageItem() plot.addItem(img) hist = HistogramLUTItem() hist.setImageItem(img) widget.addItem(hist) hist.setLevels(np.min(Sxx), np.max(Sxx)) hist.gradient.restoreState({ 'mode': 'rgb', 'ticks': [(0.5, (0, 182, 188, 255)), (1.0, (246, 111, 0, 255)), (0.0, (75, 0, 113, 255))] }) img.setImage(Sxx) img.scale(t[-1] / np.size(Sxx, axis=1), f[-1] / np.size(Sxx, axis=0)) plot.setLimits(xMin=0, xMax=t[-1], yMin=0, yMax=f[-1]) plot.setLabel('bottom', "Time", units='s') plot.setLabel('left', "Frequency", units='Hz')
class PreviewWidget(GraphicsLayoutWidget): def __init__(self): super(PreviewWidget, self).__init__() self.setMinimumHeight(250) self.setMinimumWidth(250) self.view = self.addViewBox(lockAspect=True, enableMenu=False) self.imageitem = ImageItem() self.textitem = TextItem(anchor=(0.5, 0)) self.textitem.setFont(QFont('Zero Threes')) self.imgdata = None self.view.addItem(self.imageitem) self.view.addItem(self.textitem) self.textitem.hide() self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) # def textItemBounds(axis, frac=1.0, orthoRange=None): # b = self.textitem.boundingRect() # sx, sy = self.view.viewPixelSize() # x, y = sx*b.width(), sy*b.height() # if axis == 0: return (-x/2, x/2) # if axis == 1: return (0, y) # # self.textitem.dataBounds = textItemBounds def sizeHint(self): return QSize(250, 250) def preview_header(self, header: NonDBHeader): try: data = header.meta_array()[0] self.setImage(data) except IndexError: self.imageitem.clear() self.setText('UNKNOWN DATA FORMAT') def setImage(self, imgdata): self.imageitem.clear() self.textitem.hide() self.imgdata = imgdata self.imageitem.setImage(np.rot90( np.log(self.imgdata * (self.imgdata > 0) + (self.imgdata < 1)), 3), autoLevels=True) self.view.autoRange() def setText(self, text): self.textitem.setText(text) self.imageitem.clear() self.textitem.setVisible(True) self.view.autoRange()
def __init__(self, name: str = "MIMiniImageView"): super().__init__() self.name = name.title() self.im = ImageItem() self.vb = ViewBox(invertY=True, lockAspect=True, name=name) self.vb.addItem(self.im) self.hist = HistogramLUTItem(self.im) graveyard.append(self.vb) # Sub-layout prevents resizing issues when details text changes image_layout = self.addLayout(colspan=2) image_layout.addItem(self.vb) image_layout.addItem(self.hist) self.hist.setFixedWidth(100) # HistogramLUTItem used pixel sizes self.nextRow() self.details = self.addLabel("", colspan=2) self.im.hoverEvent = lambda ev: self.mouse_over(ev) self.axis_siblings: "WeakSet[MIMiniImageView]" = WeakSet() self.histogram_siblings: "WeakSet[MIMiniImageView]" = WeakSet()
def __init__(self, parent=None): """Initialize the class. Parameters ---------- parent : None, optional Top-level widget. """ super().__init__(parent) self.plot = self.addPlot() self.plot.invertY() self.image = ImageItem() self.image.setOpts(axisOrder='row-major') self.plot.addItem(self.image) self.data = None self.arraySize = None self.boundingRect = None self.timeScale = None self.colorMap = 'viridis' self.image.setLookupTable(getLutFromColorMap(self.colorMap))
def heatmap(self, data: np.ndarray, label: Optional[str] = None, data_range: Tuple[Optional[float], Optional[float]] = (None, None), **kwargs) -> None: kwargs = Axes._add_label_to_kwargs(label, kwargs) self._image = ImageItem(data.T, **kwargs) self._raw.addItem(self._image) # item = ImageItem(data.T, **kwargs) # self._images.append(item) # self._raw.addItem(item) # if data_range[0] is not None and data_range[1] is not None: self._data_range = data_range
def enable_check(self, name: str, color: List[int], pos: int, func: Callable, message: str, actions: Optional[List[Tuple[str, Callable]]]): if name not in self.enabled_checks: icon_path = finder.ROOT_PATH + "/gui/ui/images/exclamation-triangle-red.png" indicator = IndicatorIconView(self.viewbox, icon_path, pos, color, message) if actions is not None: indicator.add_actions(actions) overlay = ImageItem() self.viewbox.addItem(overlay) check = BadDataCheck(func, indicator, overlay, color) self.enabled_checks[name] = check self.check_for_bad_data()
class CameraPlotWidget(GraphicsLayoutWidget): """This class manages and displays the camera CCD frame. Attributes ---------- image : numpy.array The data frame to display. """ def __init__(self, parent=None): """Initialize the class. Parameters ---------- parent : None, optional Top-level widget. """ super().__init__(parent) p1 = self.addPlot() p1.setAspectLocked(True) self.image = ImageItem() self.image.setOpts(axisOrder='row-major') p1.addItem(self.image)
def gen_image_item(self, height, width): self.pg_image_item = ImageItem(self.image_array) self.pg_image_item.setRect(QRectF(0, height, width, -height))