def test(): """Test""" # -- Create QApplication import plotpy _app = plotpy.qapplication() # -- filename = osp.join(osp.dirname(__file__), "brain.png") win = create_window() image = make.image(filename=filename, colormap="bone") data2 = np.array(image.data.T[200:], copy=True) image2 = make.image(data2, title="Modified", alpha_mask=True) plot = win.get_plot() plot.add_item(image) plot.add_item(image2, z=1) win.exec_()
def build_items(): x = np.linspace(-10, 10, 200) y = np.sin(np.sin(np.sin(x))) filename = osp.join(osp.dirname(__file__), "brain.png") items = [ make.curve(x, y, color="b"), make.image(filename=filename), make.trimage(filename=filename), make.maskedimage(filename=filename, colormap='gray', show_mask=True, xdata=[0, 40], ydata=[0, 50]), make.label("Relative position <b>outside</b>", (x[0], y[0]), (-10, -10), "BR"), make.label("Relative position <i>inside</i>", (x[0], y[0]), (10, 10), "TL"), make.label("Absolute position", "R", (0, 0), "R"), make.legend("TR"), make.rectangle(-3, -0.8, -0.5, -1., "rc1"), make.segment(-3, -0.8, -0.5, -1., "se1"), make.ellipse(-10, 0.0, 0, 0, "el1"), make.annotated_rectangle(0.5, 0.8, 3, 1., "rc1", "tutu"), make.annotated_segment(-1, -1, 1, 1., "rc1", "tutu"), Axes((0, 0), (1, 0), (0, 1)), PolygonShape( np.array([[150., 330.], [270., 520.], [470., 480.], [520., 360.], [460., 200.], [250., 240.]])), ] return items
def imshow(data, interpolation=None, mask=None): """ Display the image in *data* to current axes interpolation: 'nearest', 'linear' (default), 'antialiasing' Example:: import numpy as np x = np.linspace(-5, 5, 1000) img = np.fromfunction(lambda x, y: np.sin((x/200.)*(y/200.)**2), (1000, 1000)) gray() imshow(img) show() """ axe = gca() import numpy as np if isinstance(data, np.ma.MaskedArray) and mask is None: mask = data.mask data = data.data if mask is None: img = make.image(data) else: img = make.maskedimage(data, mask, show_mask=True) if interpolation is not None: interp_dict = {'nearest': INTERP_NEAREST, 'linear': INTERP_LINEAR, 'antialiasing': INTERP_AA} assert interpolation in interp_dict, "invalid interpolation option" img.set_interpolation(interp_dict[interpolation], size=5) axe.add_image(img) axe.yreverse = True _show_if_interactive() return [img]
def imshow(data, title=None, hold=False): dlg = ImageDialog(wintitle=title) dlg.get_plot().add_item(make.image(data)) if hold: dlg.show() else: dlg.exec_()
def imshow(data, interpolation=None, mask=None): """ Display the image in *data* to current axes interpolation: 'nearest', 'linear' (default), 'antialiasing' Example:: import numpy as np x = np.linspace(-5, 5, 1000) img = np.fromfunction(lambda x, y: np.sin((x/200.)*(y/200.)**2), (1000, 1000)) gray() imshow(img) show() """ axe = gca() import numpy as np if isinstance(data, np.ma.MaskedArray) and mask is None: mask = data.mask data = data.data if mask is None: img = make.image(data) else: img = make.maskedimage(data, mask, show_mask=True) if interpolation is not None: interp_dict = { 'nearest': INTERP_NEAREST, 'linear': INTERP_LINEAR, 'antialiasing': INTERP_AA } assert interpolation in interp_dict, "invalid interpolation option" img.set_interpolation(interp_dict[interpolation], size=5) axe.add_image(img) axe.yreverse = True _show_if_interactive() return [img]
def build_items(): x = np.linspace(-10, 10, 200) y = np.sin(np.sin(np.sin(x))) filename = osp.join(osp.dirname(__file__), "brain.png") items = [ make.curve(x, y, color="b"), make.image(filename=filename), make.trimage(filename=filename), make.maskedimage(filename=filename, colormap='gray', show_mask=True, xdata=[0, 40], ydata=[0, 50]), make.label("Relative position <b>outside</b>", (x[0], y[0]), (-10, -10), "BR"), make.label("Relative position <i>inside</i>", (x[0], y[0]), (10, 10), "TL"), make.label("Absolute position", "R", (0, 0), "R"), make.legend("TR"), make.rectangle(-3, -0.8, -0.5, -1., "rc1"), make.segment(-3, -0.8, -0.5, -1., "se1"), make.ellipse(-10, 0.0, 0, 0, "el1"), make.annotated_rectangle(0.5, 0.8, 3, 1., "rc1", "tutu"), make.annotated_segment(-1, -1, 1, 1., "rc1", "tutu"), Axes( (0, 0), (1, 0), (0, 1) ), PolygonShape(np.array([[150., 330.], [270., 520.], [470., 480.], [520., 360.], [460., 200.], [250., 240.]])), ] return items
def imshow( data ): win = ImageDialog(edit=False, toolbar=True, wintitle="ImageDialog test", options=dict(xlabel='Concentration', xunit='ppm')) item = make.image(data) plot = win.get_plot() plot.add_item(item) win.show() win.exec_()
def show_data(self, data): plot = self.get_plot() if self.item is not None: self.item.set_data(data) else: self.item = make.image(data, colormap="gray") plot.add_item(self.item, z=0) plot.set_active_item(self.item) plot.replot()
def __init__(self): QMainWindow.__init__(self) filename = osp.join(osp.dirname(__file__), "brain.png") image1 = make.image(filename=filename, title="Original", colormap='gray') from plotpy.tests.image import compute_image image2 = make.image(compute_image()) widget = CentralWidget(self) self.setCentralWidget(widget) widget.plot1.add_item(image1) widget.plot2.add_item(image2) toolbar = self.addToolBar("tools") widget.manager.add_toolbar(toolbar, id(toolbar)) # widget.manager.set_default_toolbar(toolbar) widget.register_tools()
def imshow(data): win = ImageDialog(edit=False, toolbar=True, wintitle="ImageDialog test", options=dict(xlabel='Concentration', xunit='ppm')) item = make.image(data) plot = win.get_plot() plot.add_item(item) win.show() win.exec_()
def test(): """Test""" # -- Create QApplication import plotpy _app = plotpy.qapplication() # -- filename = osp.join(osp.dirname(__file__), "brain.png") image = make.image(filename=filename, colormap="bone") rect = get_segment(image) print("Coordinates:", rect) print("Distance:", np.sqrt((rect[2]-rect[0])**2 + (rect[3]-rect[1])**2))
def test(): """Test""" # -- Create QApplication import plotpy _app = plotpy.qapplication() # -- filename = osp.join(osp.dirname(__file__), "brain.png") win = create_window() image1 = make.image(filename=filename, title="Original", alpha_mask=False, colormap='gray') data2 = np.array(image1.data.T[200:], copy=True) image2 = make.image(data2, title="Modified")#, alpha_mask=True) plot = win.get_plot() plot.add_item(image1, z=0) plot.add_item(image2, z=1) plot.set_items_readonly(False) image2.set_readonly(True) win.get_itemlist_panel().show() win.show() win.exec_()
def show_data(self, data, lut_range=None): plot = self.imagewidget.plot if self.item is not None: self.item.set_data(data) if lut_range is None: lut_range = self.item.get_lut_range() self.imagewidget.set_contrast_range(*lut_range) self.imagewidget.update_cross_sections() else: self.item = make.image(data) plot.add_item(self.item, z=0) plot.replot()
def test(): """Test""" # -- Create QApplication import plotpy _app = plotpy.qapplication() # -- filename = osp.join(osp.dirname(__file__), "brain.png") win = create_window() image = make.image(filename=filename, colormap="bone", alpha_mask=True) plot = win.get_plot() plot.add_item(image) win.exec_()
def test(): filename = osp.join(osp.dirname(__file__), "mr-brain.dcm") image = make.image(filename=filename, title="DICOM img", colormap='gray') win = ImageDialog(edit=False, toolbar=True, wintitle="DICOM I/O test", options=dict(show_contrast=True)) plot = win.get_plot() plot.add_item(image) plot.select_item(image) contrast = win.get_contrast_panel() contrast.histogram.eliminate_outliers(54.) win.resize(600, 700) return win
def test(): """Test""" # -- Create QApplication import plotpy _app = plotpy.qapplication() # -- filename = osp.join(osp.dirname(__file__), "brain.png") win = create_window() image1 = make.image(filename=filename, title="Original", alpha_mask=False, colormap='gray') data2 = np.array(image1.data.T[200:], copy=True) image2 = make.image(data2, title="Modified") #, alpha_mask=True) plot = win.get_plot() plot.add_item(image1, z=0) plot.add_item(image2, z=1) plot.set_items_readonly(False) image2.set_readonly(True) win.get_itemlist_panel().show() win.show() win.exec_()
def test(): """Test""" # -- Create QApplication import plotpy _app = plotpy.qapplication() # -- filename = osp.join(osp.dirname(__file__), "brain.png") image = make.image(filename=filename, title="Original", colormap='gray') win = ImageDialog(edit=False, toolbar=True, wintitle="Contrast test", options=dict(show_contrast=True)) plot = win.get_plot() plot.add_item(image) win.resize(600, 600) win.show() try: plot.save_widget('contrast.png') except IOError: # Skipping this part of the test # because user has no write permission on current directory pass win.exec_()
def compute_oblique_section(item, obj): """Return oblique averaged cross section""" global TEMP_ITEM xa, ya, xb, yb = obj.get_bounding_rect_coords() x0, y0, x1, y1, x2, y2, x3, y3 = obj.get_rect() getcpi = item.get_closest_pixel_indexes ixa, iya = getcpi(xa, ya) ixb, iyb = getcpi(xb, yb) ix0, iy0 = getcpi(x0, y0) ix1, iy1 = getcpi(x1, y1) ix3, iy3 = getcpi(x3, y3) destw = vector_norm(ix0, iy0, ix1, iy1) desth = vector_norm(ix0, iy0, ix3, iy3) ysign = -1 if obj.plot().get_axis_direction('left') else 1 angle = vector_angle(ix1-ix0, (iy1-iy0)*ysign) dst_rect = (0, 0, int(destw), int(desth)) dst_image = np.empty((desth, destw), dtype=np.float64) if isinstance(item.data, np.ma.MaskedArray): if item.data.dtype in (np.float32, np.float64): item_data = item.data else: item_data = np.ma.array(item.data, dtype=np.float32, copy=True) data = np.ma.filled(item_data, np.nan) else: data = item.data ixr = .5*(ixb+ixa) iyr = .5*(iyb+iya) mat = translate(ixr, iyr)*rotate(-angle)*translate(-.5*destw, -.5*desth) _scale_tr(data, mat, dst_image, dst_rect, (1., 0., np.nan), (INTERP_LINEAR,)) if DEBUG: plot = obj.plot() if TEMP_ITEM is None: from plotpy.builder import make TEMP_ITEM = make.image(dst_image) plot.add_item(TEMP_ITEM) else: TEMP_ITEM.set_data(dst_image) if False: TEMP_ITEM.imageparam.alpha_mask = True xmin, ymin = ixa, iya xmax, ymax = xmin+destw, ymin+desth TEMP_ITEM.imageparam.xmin = xmin TEMP_ITEM.imageparam.xmax = xmax TEMP_ITEM.imageparam.ymin = ymin TEMP_ITEM.imageparam.ymax = ymax TEMP_ITEM.imageparam.update_image(TEMP_ITEM) plot.replot() ydata = np.ma.fix_invalid(dst_image, copy=DEBUG).mean(axis=1) xdata = item.get_x_values(0, ydata.size)[:ydata.size] try: xdata -= xdata[0] except IndexError: print(xdata, ydata) return xdata, ydata
def __init__(self, image_data): super(TestWindow, self).__init__() plot = self.imagewidget.plot plot.add_item(make.image(image_data)) self.setWindowTitle("QtDesigner plugins example")