def create_nominal(cls, name, labels): """ Creates a nominal attribute. :param name: the name of the attribute :type name: str :param labels: the list of string labels to use :type labels: list """ return Attribute( javabridge.make_instance("weka/core/Attribute", "(Ljava/lang/String;Ljava/util/List;)V", name, javabridge.make_list(labels)))
def test_11_06_select_overlay(self): display_svc = ij2.get_display_service(self.context) overlay_svc = ij2.get_overlay_service(self.context) i, j = np.mgrid[0:15, 0:1900:100] image = i + j ds = ij2.create_dataset(self.context, image, "Foo") display = display_svc.createDisplay("Foo", ds) d2 = display_svc.createDisplay("Bar", ij2.create_dataset(self.context, image, "Bar")) mask = np.zeros(i.shape, bool) islice = slice(2, -3) jslice = slice(3, -4) mask[islice, jslice] = True overlay = ij2.create_overlay(self.context, mask) overlay_svc.addOverlays(display, J.make_list([overlay])) ij2.select_overlay(display.o, overlay)
def test_11_06_select_overlay(self): display_svc = ij2.get_display_service(self.context) overlay_svc = ij2.get_overlay_service(self.context) i, j = np.mgrid[0:15, 0:1900:100] image = i+j ds = ij2.create_dataset(self.context, image, "Foo") display = display_svc.createDisplay("Foo", ds) d2 = display_svc.createDisplay("Bar", ij2.create_dataset(self.context, image, "Bar")) mask = np.zeros(i.shape, bool) islice = slice(2,-3) jslice = slice(3,-4) mask[islice, jslice] = True overlay = ij2.create_overlay(self.context, mask) overlay_svc.addOverlays(display, J.make_list([overlay])) ij2.select_overlay(display.o, overlay)
def test_11_07_get_selection_bounds(self): display_svc = ij2.get_display_service(self.context) overlay_svc = ij2.get_overlay_service(self.context) i, j = np.mgrid[0:15, 0:1900:100] image = i+j ds = ij2.create_dataset(self.context, image, "Foo") display = display_svc.createDisplay("Foo", ds) mask = np.zeros(i.shape, bool) islice = slice(2,-3) jslice = slice(3,-4) mask[islice, jslice] = True overlay = ij2.create_overlay(self.context, mask) overlay_svc.addOverlays(display, J.make_list([overlay])) ij2.select_overlay(display.o, overlay) rect = overlay_svc.getSelectionBounds(display) self.assertEqual(J.get_field(rect, "x", "D"), 3) self.assertEqual(J.get_field(rect, "y", "D"), 2) self.assertEqual(J.get_field(rect, "width", "D"), 11) self.assertEqual(J.get_field(rect, "height", "D"), 9)
def test_09_09_check_overlay(self): svc = ij2.get_display_service(self.context) r = np.random.RandomState() i, j = np.mgrid[0:11, 0:1300:100] image = i+j ds = ij2.create_dataset(self.context, image, "Foo") display = svc.createDisplay("Foo", ds) mask = np.zeros(image.shape, bool) mask[2:-1, 3:-4] = 1 overlay = ij2.create_overlay(self.context, mask) ij2.get_overlay_service(self.context).addOverlays( display.o, J.make_list([overlay])) ij2.select_overlay(display.o, overlay) self.run_command("net.imagej.plugins.commands.imglib.CropImage", dict(display=display), {}) dataset = ij2.wrap_dataset(display.getActiveView().getData()) image_out = dataset.get_pixel_data() self.assertSequenceEqual(image_out.shape, [7, 5]) np.testing.assert_array_equal(image[2:-2, 3:-5], image_out)
def test_11_07_get_selection_bounds(self): display_svc = ij2.get_display_service(self.context) overlay_svc = ij2.get_overlay_service(self.context) i, j = np.mgrid[0:15, 0:1900:100] image = i + j ds = ij2.create_dataset(self.context, image, "Foo") display = display_svc.createDisplay("Foo", ds) mask = np.zeros(i.shape, bool) islice = slice(2, -3) jslice = slice(3, -4) mask[islice, jslice] = True overlay = ij2.create_overlay(self.context, mask) overlay_svc.addOverlays(display, J.make_list([overlay])) ij2.select_overlay(display.o, overlay) rect = overlay_svc.getSelectionBounds(display) self.assertEqual(J.get_field(rect, "x", "D"), 3) self.assertEqual(J.get_field(rect, "y", "D"), 2) self.assertEqual(J.get_field(rect, "width", "D"), 11) self.assertEqual(J.get_field(rect, "height", "D"), 9)
def test_09_09_check_overlay(self): svc = ij2.get_display_service(self.context) r = np.random.RandomState() i, j = np.mgrid[0:11, 0:1300:100] image = i + j ds = ij2.create_dataset(self.context, image, "Foo") display = svc.createDisplay("Foo", ds) mask = np.zeros(image.shape, bool) mask[2:-1, 3:-4] = 1 overlay = ij2.create_overlay(self.context, mask) ij2.get_overlay_service(self.context).addOverlays( display.o, J.make_list([overlay])) ij2.select_overlay(display.o, overlay) self.run_command("net.imagej.plugins.commands.imglib.CropImage", dict(display=display), {}) dataset = ij2.wrap_dataset(display.getActiveView().getData()) image_out = dataset.get_pixel_data() self.assertSequenceEqual(image_out.shape, [7, 5]) np.testing.assert_array_equal(image[2:-2, 3:-5], image_out)
def create_instances(cls, name, atts, capacity): """ Creates a new Instances. :param name: the relation name :type name: str :param atts: the list of attributes to use for the dataset :type atts: list of Attribute :param capacity: how many data rows to reserve initially (see compactify) :type capacity: int :return: the dataset :rtype: Instances """ attributes = [] for att in atts: attributes.append(att.jobject) return Instances( javabridge.make_instance( "weka/core/Instances", "(Ljava/lang/String;Ljava/util/ArrayList;I)V", name, javabridge.make_list(attributes), capacity))
def test_06_01_get_mask_data(self): # Get the overlay data from a display # display_svc = ij2.get_display_service(self.context) overlay_svc = ij2.get_overlay_service(self.context) image = np.zeros((30, 30)) ds = ij2.create_dataset(self.context, image, "Foo") display = display_svc.createDisplay("Foo", ds) d2 = display_svc.createDisplay("Bar", ij2.create_dataset(self.context, image, "Bar")) overlay = J.run_script( """var o = new Packages.net.imagej.overlay.RectangleOverlay(context.getContext()); o.setOrigin(5, 0); o.setOrigin(3, 1); o.setExtent(6, 0); o.setExtent(7, 1); o;""", dict(context=self.context)) overlay_svc.addOverlays(display, J.make_list([overlay])) ij2.select_overlay(display.o, overlay) mask = ij2.create_mask(display) i, j = np.mgrid[0:mask.shape[0], 0:mask.shape[1]] np.testing.assert_equal(mask, (j >= 5) & (j < 11) & (i >= 3) & (i < 10))
def __init__(self): if service_classes is None: classes = None ctxt_fn = J.run_script( """new java.util.concurrent.Callable() { call: function() { return new Packages.net.imagej.ImageJ(false); } }""") else: classes = [ J.class_for_name(x) for x in service_classes or REQUIRED_SERVICES] classes = J.make_list(classes) ctxt_fn = J.run_script( """new java.util.concurrent.Callable() { call: function() { return new Packages.net.imagej.ImageJ(classes); } }""", dict(classes = classes.o)) self.o = J.call(ctxt_fn, 'call', '()Ljava/lang/Object;')
def __init__(self): if service_classes is None: classes = None ctxt_fn = J.run_script( """new java.util.concurrent.Callable() { call: function() { return new Packages.net.imagej.ImageJ(false); } }""") else: classes = [ J.class_for_name(x) for x in service_classes or REQUIRED_SERVICES] classes = J.make_list(classes) ctxt_fn = J.run_script( """new java.util.concurrent.Callable() { call: function() { return new Packages.net.imagej.ImageJ(classes); } }""", dict(classes = classes.o)) self.o = J.execute_future_in_main_thread( J.make_future_task(ctxt_fn))
def __init__(self): if service_classes is None: classes = None ctxt_fn = J.run_script("""new java.util.concurrent.Callable() { call: function() { return new Packages.net.imagej.ImageJ(false); } }""") else: classes = [ J.class_for_name(x) for x in service_classes or REQUIRED_SERVICES ] classes = J.make_list(classes) ctxt_fn = J.run_script( """new java.util.concurrent.Callable() { call: function() { return new Packages.net.imagej.ImageJ(classes); } }""", dict(classes=classes.o)) self.o = J.execute_future_in_main_thread( J.make_future_task(ctxt_fn))
def test_08_14_addAllI(self): l = javabridge.make_list(["Foo", "Bar"]) l.addAllI(1, javabridge.make_list(["Baz"])) self.assertSequenceEqual(l, ["Foo", "Baz", "Bar"])
def test_08_12_make_list(self): l = javabridge.make_list(["Foo", "Bar"]) self.assertSequenceEqual(l, ["Foo", "Bar"]) self.assertTrue(hasattr(l, "addI"))
def test_08_21__delitem__(self): l = javabridge.make_list(["Foo", "Bar", "Baz"]) del l[1] self.assertSequenceEqual(l, ["Foo", "Baz"])
def fn(): list(javabridge.iterate_java(javabridge.make_list(range(10)).o))
def test_08_19__getitem__(self): l = javabridge.make_list(["Foo", "Bar", "Baz", "Hello", "World"]) self.assertEqual(l[1], "Bar") self.assertEqual(l[-2], "Hello") self.assertSequenceEqual(l[1:3], ["Bar", "Baz"]) self.assertSequenceEqual(l[::3], ["Foo", "Hello"])
def test_08_20__setitem__(self): l = javabridge.make_list(["Foo", "Bar"]) l[1] = "Baz" self.assertEqual(l.get(1), "Baz")
def test_08_17_set(self): l = javabridge.make_list(["Foo", "Bar"]) l.set(1, "Baz") self.assertEqual(l.get(1), "Baz")
def test_08_18_subList(self): l = javabridge.make_list(["Foo", "Bar", "Baz", "Hello", "World"]) self.assertSequenceEqual(l.subList(1, 3), ["Bar", "Baz"])
def create_nominal(cls, name, labels): """ Creates a nominal attribute. :param name: the name of the attribute :type name: str :param labels: the list of string labels to use :type labels: list """ return Attribute( javabridge.make_instance( "weka/core/Attribute", "(Ljava/lang/String;Ljava/util/List;)V", name, javabridge.make_list(labels)))
def test_08_15_indexOf(self): l = javabridge.make_list(["Foo", "Bar"]) self.assertEqual(l.indexOf("Bar"), 1) self.assertEqual(l.lastIndexOf("Foo"), 0)
def test_08_16_get(self): l = javabridge.make_list(["Foo", "Bar"]) self.assertEqual(l.get(1), "Bar")