Ejemplo n.º 1
0
def volumina_n_layer(data, labels=None):
    """
    BASIC FUNCTION

    :param data:
    :param labels:
    :return:
    """

    app = QApplication(sys.argv)

    import volumina
    from volumina.api import Viewer

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

    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 batchLabels
        data_type = d.dtype

        if data_type is FloatType or 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.º 2
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_()