def volumina_flexible_layer(data, layer_types, labels=None):

    assert len(layer_types) == len(data)

    app = QApplication (sys.argv)
    import volumina
    from volumina.api import Viewer

    v = Viewer ()
    v.title = " Volumina Demo "
    v.showMaximized ()

    for i, d in enumerate(data):
        layer_name = "layer_" + str(i)
        if labels is not None:
            layer_name = labels[i]

        # get data type of the elements d, to determine
        # if we use a grayscale overlay (float32) or a randomcolors overlay (uint) for labels
        data_type = d.dtype

        if layer_types[i] == 'Grayscale':
            v.addGrayscaleLayer(d , name = layer_name)
        elif layer_types[i] == 'RandomColors':
            v.addRandomColorsLayer(d.astype(np.uint32), name=layer_name)
        elif layer_types[i] == 'Red':
            v.addAlphaModulatedLayer(d , name=layer_name, tintColor=QColor(255,0,0))
        elif layer_types[i] == 'Green':
            v.addAlphaModulatedLayer(d , name=layer_name, tintColor=QColor(0,255,0))
        elif layer_types[i] == 'Blue':
            v.addAlphaModulatedLayer(d , name=layer_name, tintColor=QColor(0,0,255))
        else:
            raise KeyError("Invalid Layer Type, %s!" % layer_types[i])

    app.exec_()
def volumina_n_layer(data, labels = None):

    app = QApplication(sys.argv)
    import volumina
    from volumina.api import Viewer

    v = Viewer ()
    v.title = " Volumina Demo "
    v.showMaximized ()

    for ind, d in enumerate(data):
        layer_name = "layer_" + str(ind)

        if labels is not None:
            layer_name = labels[ind]
            # get data type of the elements d, to determine
            # if we use a grayscale overlay (float32) or a randomcolors overlay (uint) for labels

        data_type = d.dtype
        if data_type == np.float32 or data_type == np.float64:
            v.addGrayscaleLayer(d , name = layer_name)
        else:
            v.addRandomColorsLayer(d.astype(np.uint32), name = layer_name)

    app.exec_()
Ejemplo n.º 3
0
def streaming_n_layer(files, keys, labels=None, block_shape=[100, 100, 100]):
    from volumina.api import Viewer
    from volumina.pixelpipeline.datasources import LazyflowSource

    from lazyflow.graph import Graph
    from lazyflow.operators.ioOperators.opStreamingHdf5Reader import OpStreamingHdf5Reader
    from lazyflow.operators import OpCompressedCache

    app = QApplication(sys.argv)

    v = Viewer()

    graph = Graph()

    def mkH5source(fname, gname):
        h5file = h5py.File(fname)
        dtype = h5file[gname].dtype

        source = OpStreamingHdf5Reader(graph=graph)
        source.Hdf5File.setValue(h5file)
        source.InternalPath.setValue(gname)

        op = OpCompressedCache(parent=None, graph=graph)
        op.BlockShape.setValue(block_shape)
        op.Input.connect(source.OutputImage)

        return op.Output, dtype

    #rawSource = mkH5source(data[0], keys[0])
    #v.addGrayscaleLayer(rawSource, name = 'raw')

    for i, f in enumerate(files):

        if labels is not None:
            layer_name = labels[i]
        else:
            layer_name = "layer_%i" % (i)

        source, dtype = mkH5source(f, keys[i])

        if np.dtype(dtype) in (np.dtype('uint8'), np.dtype('float32'),
                               np.dtype('float64')):
            v.addGrayscaleLayer(source, name=layer_name)
        else:
            v.addRandomColorsLayer(source, name=layer_name)

    v.setWindowTitle("Streaming Viewer")
    v.showNormal()
    app.exec_()
Ejemplo n.º 4
0
def view_HDF5(inpaths):

    app = QApplication(sys.argv)
    v = Viewer()

    for inpath in inpaths:
        if "n_1_" in inpath:
            prefix = "n_1_"
        elif "n_2_" in inpath:
            prefix = "n_2_"
        else:
            prefix = ""
        if "h5" in inpath:
            #data = vigra.readHDF5(inpath, "data")
            print
            print "inpath", inpath
            data = read_h5(inpath)
            file = inpath.split("/")[-1]
            name = prefix + file.split(".")[0]
            if "prob_files" in inpath or "seeds" in inpath or "trimap" in inpath:
                data = binarize_predict(data)
                file = inpath.split("/")[-2] + "_" + inpath.split("/")[-1]
                name = prefix + file.split(".")[0]
            print "type", type(data)
            if "test_data" in inpath or "prob_files" in inpath or "seeds" in inpath or "trimap" in inpath:
                v.addGrayscaleLayer(data, name=name)
            # if "trimaps" in inpath or "dense" in inpath or "sup_maps" in inpath or "seg_maps" in inpath:
            #     v.addRandomColorsLayer(255*data, name=name+"_color")
            else:
                v.addRandomColorsLayer(255*data, name=name+"_color")

        if "png" in inpath:
            img = vigra.impex.readImage(inpath)
            img = np.asarray(img)
            file = inpath.split("/")[-1]
            name = file.split(".")[0]
            print "type",type(img)
            v.addGrayscaleLayer(img, name=name)

            #v.addRandomColorsLayer(255*img, name=name+"color")
    v.showMaximized()
    app.exec_()
def volumina_double_layer(data, overlay):
	# get data type of the elements of overlay, to determine
	# if we use a grayscale overlay (float32) or a randomcolors overlay (uint) for labels
	mask = []
	for i in range( len(overlay.shape) ):
		mask.append(0)
	mask = tuple(mask)
	data_type = type(overlay[mask])

	app = QApplication (sys.argv)
	from volumina.api import Viewer

	v = Viewer ()
	v.title = " Volumina Demo "
	v.showMaximized ()
	v.addGrayscaleLayer(data , name = " raw data ")

	if data_type == np.float32:
		v.addGrayscaleLayer(overlay , name = " overlay ")
	else:
		v.addRandomColorsLayer(overlay, name = " overlay ")

	app . exec_ ()