Exemple #1
0
    def addHocViewer(grayData=None, segData=None, title="viewer", visu=True):
        if visu:
            app = QApp.Instance().app

            v = Viewer()

            if grayData is not None:
                for name in grayData.keys():
                    data = grayData[name]
                    if hasVigra:
                        if isinstance(data, vigra.arraytypes.VigraArray):
                            v.addGrayscaleLayer(data.view(numpy.ndarray), name=name)
                        else:
                            v.addGrayscaleLayer(data, name=name)
                    else:
                        v.addGrayscaleLayer(data, name=name)

            if segData is not None:
                for name in segData.keys():
                    data = segData[name]
                    if hasVigra:
                        if isinstance(data, vigra.arraytypes.VigraArray):
                            v.addColorTableLayer(data.view(numpy.ndarray), name=name)
                        else:
                            v.addColorTableLayer(data, name=name)
                    else:
                        v.addGrayscaleLayer(data, name=name)

            v.setWindowTitle(title)
            v.showMaximized()
            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_()
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_()
Exemple #4
0
def view(data, labels=None, layer_types=None):
    """
    """

    if labels is not None:
        assert len(labels) == len(data)
    if layer_types is not None:
        assert len(layer_types) == len(data)
        assert all(ltype in ('Grayscale', 'RandomColors', 'Red', 'Green', 'Blue')
                   for ltype in layer_types)

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

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

    for i, d in enumerate(data):
        layer_name = layer_name = "layer_" + str(i) if labels is None else labels[i]
        if layer_types is None:
            _dtype_to_layer(v, d, layer_name)
        else:
            _name_to_layer(v, d, layer_types[i], layer_name)

    app.exec_()
Exemple #5
0
    def addHocViewer(grayData=None, segData=None, title="viewer", visu=True):
        if visu:
            app = QApp.Instance().app

            v = Viewer()

            if grayData is not None:
                for name in grayData.keys():
                    data = grayData[name]
                    if _hasVigra:
                        if isinstance(data, vigra.arraytypes.VigraArray):
                            v.addGrayscaleLayer(data.view(numpy.ndarray),
                                                name=name)
                        else:
                            v.addGrayscaleLayer(data, name=name)
                    else:
                        v.addGrayscaleLayer(data, name=name)

            if segData is not None:
                for name in segData.keys():
                    data = segData[name]
                    if _hasVigra:
                        if isinstance(data, vigra.arraytypes.VigraArray):
                            v.addColorTableLayer(data.view(numpy.ndarray),
                                                 name=name)
                        else:
                            v.addColorTableLayer(data, name=name)
                    else:
                        v.addGrayscaleLayer(data, name=name)

            v.setWindowTitle(title)
            v.showMaximized()
            app.exec_()
def volumina_single_layer(data):
	app = QApplication (sys.argv)
	from volumina.api import Viewer

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

	app . exec_ ()
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.showMaximized()
    app.exec_()
Exemple #8
0
def view(dset):
    from volumina.api import Viewer
    from PyQt4.QtGui import QApplication
    app = QApplication([])
    v = Viewer()
    if isinstance(dset, str):
        f = h5py.File(dset, 'r')
        d = f["volume/data"].value
        f.close()
        v.setWindowTitle(dset)
        v.addGrayscaleLayer(d, name="raw")
    elif isinstance(dset, numpy.ndarray):
        v.addGrayscaleLayer(dset, name="raw")
    else:
        raise RuntimeError("%r" % dset)
    v.showMaximized()
    app.exec_()
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_ ()
Exemple #11
0
    print "seg "
    labels = vigra.readHDF5(lPath, 'data')
    labelsS = vigra.readHDF5(lsPath, 'data')
    #labelsSS = vigra.readHDF5(lssPath, 'data')
    labelsPS = vigra.readHDF5(
        "/mnt/CLAWS1/tbeier/data/stack_with_holes/lps.h5", 'data')

    print ew.shape

    print "datashape", data.shape
    print "resshape", smoothedT.shape

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

    v.addGrayscaleLayer(data, name="raw")
    v.addGrayscaleLayer(smoothedT, name="smoothedT")
    v.addGrayscaleLayer(ew, name="hessian ew")
    v.addGrayscaleLayer(ews, name="hessian ews")
    v.addGrayscaleLayer(ewss, name="hessian ewss")
    v.addGrayscaleLayer(pEws, name="hessian p80ews")
    #v.addGrayscaleLayer(dd, name="diff ews")
    v.addColorTableLayer(labels, name="labels")
    v.addColorTableLayer(labelsS, name="labelsS")
    #v.addColorTableLayer(labelsSS, name="labelsSS")
    v.addColorTableLayer(labelsPS, name="labelsPS")

    v.setWindowTitle("stack with holes")
    v.showMaximized()
    app.exec_()
from volumina.api import Viewer
from PyQt4.QtGui import QApplication
import numpy

app = QApplication([])
v = Viewer()
a = (255*numpy.random.random((1, 50,60,70,10) )).astype(numpy.uint8)
v.addGrayscaleLayer(a, name="raw")
v.showMaximized()
app.exec_()
def showStuff(raw_name, pred_viewer1, pred_viewer2, cutout_name, one_extra = None):
    # display the raw and annotations for cremi challenge data
    raw = vigra.impex.readHDF5(indir+datasets[raw_name], "data", order = 'C')
    # raw_old = vigra.readHDF5(indir+datasets["raw_bad"], "data", order = 'C')
    defect_prediction_128 = vigra.impex.readHDF5(indir+datasets[pred_viewer2], "data", order = 'C')
    defect_prediction_150 = vigra.impex.readHDF5(indir+datasets[pred_viewer1], "data", order = 'C')
    cutout_from_150_pred = vigra.impex.readHDF5(indir+datasets[cutout_name], "data", order = 'C')

    ####################################################################################################################
    # only used for fast testing stuff
    #change_one = vigra.readHDF5(indir+datasets["segmentation_on_equalized_image"], "data", order = 'C')
    #pdb.set_trace()
    #defect_prediction_150[1,:,:] = change_one[0,:,:,0]
    ####################################################################################################################
    # defect_prediction_150 = gt[..., 0]
    cutout = numpy.asarray(cutout_from_150_pred)
    rawdata = numpy.asarray(raw)
    # rawdata_old = numpy.asarray(raw_old)
    # op5ify
    # shape5d = rawdata.shape
    shape5d = (1,)+rawdata.shape+(1,)
    print shape5d, rawdata.shape, rawdata.dtype

    app = QApplication([])
    v = Viewer()
    direct = False

    # layer for raw data
    rawdata = numpy.reshape(rawdata, shape5d)
    rawsource = ArraySource(rawdata)
    v.dataShape = shape5d
    lraw = GrayscaleLayer(rawsource, direct=direct)
    lraw.visible = True
    lraw.name = "raw"
    v.layerstack.append(lraw)

    # layer for cutout regions from raw data
    cutout = numpy.reshape(cutout, shape5d)
    cutoutsource = ArraySource(cutout)
    lcutout = GrayscaleLayer(cutoutsource, direct = direct)
    lcutout.visible = False
    lcutout.name = "cut_out"
    v.layerstack.append(lcutout)

    # layer for first prediction result
    defect_prediction_128 = numpy.reshape(defect_prediction_128, shape5d)
    synsource = ArraySource(defect_prediction_128)
    ct = create_random_16bit()
    ct[0] = 0
    lsyn = ColortableLayer(synsource, ct)
    lsyn.name = pred_viewer2
    lsyn.visible = False
    v.layerstack.append(lsyn)

    # layer for second prediction result
    segm = numpy.reshape(defect_prediction_150, shape5d)
    segsource = ArraySource(segm)
    ct = create_random_16bit()
    ct[0] = 0
    lseg = ColortableLayer(segsource, ct)
    lseg.name = pred_viewer1
    lseg.visible = False
    v.layerstack.append(lseg)
    if one_extra is None:
        v.showMaximized()
        app.exec_()

    if one_extra is not None:
        # layer for third prediction result
        extra_prediction = vigra.readHDF5(indir+datasets[one_extra], "data", order = 'C')
        extra_pred_reshaped = numpy.reshape(extra_prediction, shape5d)
        segsource = ArraySource(extra_pred_reshaped)
        ct = create_random_16bit()
        ct[0] = 0
        # ct = create_default_16bit()
        lseg = ColortableLayer(segsource, ct)
        lseg.name = one_extra
        lseg.visible = False
        v.layerstack.append(lseg)
        v.showMaximized()
        app.exec_()
Exemple #14
0
def showStuff(raw_name,
              pred_viewer1,
              pred_viewer2,
              cutout_name,
              one_extra=None):
    # display the raw and annotations for cremi challenge data
    raw = vigra.impex.readHDF5(indir + datasets[raw_name], "data", order='C')
    # raw_old = vigra.readHDF5(indir+datasets["raw_bad"], "data", order = 'C')
    defect_prediction_128 = vigra.impex.readHDF5(indir +
                                                 datasets[pred_viewer2],
                                                 "data",
                                                 order='C')
    defect_prediction_150 = vigra.impex.readHDF5(indir +
                                                 datasets[pred_viewer1],
                                                 "data",
                                                 order='C')
    cutout_from_150_pred = vigra.impex.readHDF5(indir + datasets[cutout_name],
                                                "data",
                                                order='C')

    ####################################################################################################################
    # only used for fast testing stuff
    #change_one = vigra.readHDF5(indir+datasets["segmentation_on_equalized_image"], "data", order = 'C')
    #pdb.set_trace()
    #defect_prediction_150[1,:,:] = change_one[0,:,:,0]
    ####################################################################################################################
    # defect_prediction_150 = gt[..., 0]
    cutout = numpy.asarray(cutout_from_150_pred)
    rawdata = numpy.asarray(raw)
    # rawdata_old = numpy.asarray(raw_old)
    # op5ify
    # shape5d = rawdata.shape
    shape5d = (1, ) + rawdata.shape + (1, )
    print shape5d, rawdata.shape, rawdata.dtype

    app = QApplication([])
    v = Viewer()
    direct = False

    # layer for raw data
    rawdata = numpy.reshape(rawdata, shape5d)
    rawsource = ArraySource(rawdata)
    v.dataShape = shape5d
    lraw = GrayscaleLayer(rawsource, direct=direct)
    lraw.visible = True
    lraw.name = "raw"
    v.layerstack.append(lraw)

    # layer for cutout regions from raw data
    cutout = numpy.reshape(cutout, shape5d)
    cutoutsource = ArraySource(cutout)
    lcutout = GrayscaleLayer(cutoutsource, direct=direct)
    lcutout.visible = False
    lcutout.name = "cut_out"
    v.layerstack.append(lcutout)

    # layer for first prediction result
    defect_prediction_128 = numpy.reshape(defect_prediction_128, shape5d)
    synsource = ArraySource(defect_prediction_128)
    ct = create_random_16bit()
    ct[0] = 0
    lsyn = ColortableLayer(synsource, ct)
    lsyn.name = pred_viewer2
    lsyn.visible = False
    v.layerstack.append(lsyn)

    # layer for second prediction result
    segm = numpy.reshape(defect_prediction_150, shape5d)
    segsource = ArraySource(segm)
    ct = create_random_16bit()
    ct[0] = 0
    lseg = ColortableLayer(segsource, ct)
    lseg.name = pred_viewer1
    lseg.visible = False
    v.layerstack.append(lseg)
    if one_extra is None:
        v.showMaximized()
        app.exec_()

    if one_extra is not None:
        # layer for third prediction result
        extra_prediction = vigra.readHDF5(indir + datasets[one_extra],
                                          "data",
                                          order='C')
        extra_pred_reshaped = numpy.reshape(extra_prediction, shape5d)
        segsource = ArraySource(extra_pred_reshaped)
        ct = create_random_16bit()
        ct[0] = 0
        # ct = create_default_16bit()
        lseg = ColortableLayer(segsource, ct)
        lseg.name = one_extra
        lseg.visible = False
        v.layerstack.append(lseg)
        v.showMaximized()
        app.exec_()