def test_getArrayRegion(transpose=False):
pr = pg.PolyLineROI([[0, 0], [27, 0], [0, 28]], closed=True)
pr.setPos(1, 1)
rois = [
(pg.ROI([1, 1], [27, 28], pen='y'), 'baseroi'),
(pg.RectROI([1, 1], [27, 28], pen='y'), 'rectroi'),
(pg.EllipseROI([1, 1], [27, 28], pen='y'), 'ellipseroi'),
(pr, 'polylineroi'),
]
for roi, name in rois:
# For some ROIs, resize should not be used.
testResize = not isinstance(roi, pg.PolyLineROI)
origMode = pg.getConfigOption('imageAxisOrder')
try:
if transpose:
pg.setConfigOptions(imageAxisOrder='row-major')
check_getArrayRegion(roi, 'roi/'+name, testResize, transpose=True)
else:
pg.setConfigOptions(imageAxisOrder='col-major')
check_getArrayRegion(roi, 'roi/'+name, testResize)
finally:
pg.setConfigOptions(imageAxisOrder=origMode)
python类RectROI()的实例源码
def test_getArrayRegion(transpose=False):
pr = pg.PolyLineROI([[0, 0], [27, 0], [0, 28]], closed=True)
pr.setPos(1, 1)
rois = [
(pg.ROI([1, 1], [27, 28], pen='y'), 'baseroi'),
(pg.RectROI([1, 1], [27, 28], pen='y'), 'rectroi'),
(pg.EllipseROI([1, 1], [27, 28], pen='y'), 'ellipseroi'),
(pr, 'polylineroi'),
]
for roi, name in rois:
# For some ROIs, resize should not be used.
testResize = not isinstance(roi, pg.PolyLineROI)
origMode = pg.getConfigOption('imageAxisOrder')
try:
if transpose:
pg.setConfigOptions(imageAxisOrder='row-major')
check_getArrayRegion(roi, 'roi/'+name, testResize, transpose=True)
else:
pg.setConfigOptions(imageAxisOrder='col-major')
check_getArrayRegion(roi, 'roi/'+name, testResize)
finally:
pg.setConfigOptions(imageAxisOrder=origMode)
def setup(self):
self.ui = self.dockarea = pyqtgraph.dockarea.DockArea()
self.imview = pg.ImageView()
self.imview.getView().invertY(True) # uper left origin
self.dockarea.addDock(name='Full Image', widget=self.imview)
self.imview_roi = pg.ImageView()
self.imview_roi.getView().invertY(True) # upper left origin
self.dockarea.addDock(name='ROI Image', widget=self.imview_roi)
self.imview_gauss = pg.ImageView()
self.imview_gauss.getView().invertY(True) # upper left origin
self.dockarea.addDock(name='Gauss Fit Image', widget=self.imview_gauss)
self.rect_roi = pg.RectROI([20, 20], [100, 100], pen=(0,9))
self.imview.getView().addItem(self.rect_roi)
self.rect_roi.sigRegionChanged[object].connect(self.on_change_rect_roi)
self.info_label = QtWidgets.QLabel()
self.dockarea.addDock(name='info', widget=self.info_label)
def __init__(self, model):
sp = model
_, _, sizeE, sizeN = sp.covariance.noise_coord
self.patch_size_roi = pg.RectROI(
pos=(0., 0.),
size=(sizeE, sizeN),
sideScalers=True,
movable=False,
pen=pen_roi)
self.patch_size_roi.sigRegionChangeFinished.connect(self.update)
self._anisotropic = False
self.components_available = {
'synthetic_noise': [
'Noise',
lambda sp: sp.covariance.syntheticNoise(
self.sizePatchPx(), anisotropic=self.anisotropic)
]}
self._component = 'synthetic_noise'
KitePlot.__init__(self, model=model)
self.addItem(self.patch_size_roi)
def triggerKnobEnabledChange(self, state):
self.triggerKnobSource.setEnabled(state)
self.triggerKnobDirection.setEnabled(state)
if state:
if self.triggX is None:
self.triggX = 0.5
if self.triggY is None:
self.triggY = 0
if self.triggerDiamond is None:
self.triggerDiamond = pg.RectROI([self.triggX * self.samples / self.ratioBin, self.triggY],
[0, 0], invertible=True, pen=pg.mkPen(None))
self.triggerDiamond.sigRegionChanged.connect(self.triggerDiamondUpdate)
self.viewPlot.addItem(self.triggerDiamond)
else:
self.viewPlot.removeItem(self.triggerDiamond)
self.triggerDiamond = None
self.triggerReset = True
def setup(self):
#self.ui = self.splitter = QtWidgets.QSplitter()
#self.ui.setLayout(QtWidgets.QVBoxLayout())
self.ui = self.dockarea = dockarea.DockArea()
self.imview = pg.ImageView()
self.imview.getView().invertY(False) # lower left origin
#self.splitter.addWidget(self.imview)
self.dockarea.addDock(name='Image', widget=self.imview)
self.graph_layout = pg.GraphicsLayoutWidget()
#self.splitter.addWidget(self.graph_layout)
self.dockarea.addDock(name='Spec Plot', widget=self.graph_layout)
self.spec_plot = self.graph_layout.addPlot()
self.rect_plotdata = self.spec_plot.plot()
self.point_plotdata = self.spec_plot.plot(pen=(0,9))
# Rectangle ROI
self.rect_roi = pg.RectROI([20, 20], [20, 20], pen=(0,9))
self.rect_roi.addTranslateHandle((0.5,0.5))
self.imview.getView().addItem(self.rect_roi)
self.rect_roi.sigRegionChanged[object].connect(self.on_change_rect_roi)
# Point ROI
self.circ_roi = pg.CircleROI( (0,0), (2,2) , movable=True, pen=(0,9))
#self.circ_roi.removeHandle(self.circ_roi.getHandles()[0])
h = self.circ_roi.addTranslateHandle((0.5,.5))
h.pen = pg.mkPen('r')
h.update()
self.imview.getView().addItem(self.circ_roi)
self.circ_roi.removeHandle(0)
self.circ_roi_plotline = pg.PlotCurveItem([0], pen=(0,9))
self.imview.getView().addItem(self.circ_roi_plotline)
self.circ_roi.sigRegionChanged[object].connect(self.on_update_circ_roi)
self.hyperspec_data = None
self.display_image = None
self.spec_x_array = None
self.scan_specific_setup()