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_()
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_()
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_()
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_ ()
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_()
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_()