def testdistancemap(): c = np.asarray((25, 25, 25)) a = make_test_array(c) x = krebs.distancemap(a) print "range: %f %f" % (x.min(), x.max()) grad = krebs.field_gradient(x, spacing=1.) for i, g in enumerate(grad): print "grad range %i: %f %f" % (i, g.min(), g.max()) gnorm = np.sum(g * g for g in grad) for i in [c[2]]: #xrange(x.shape[2]): plt.subplot(221) p = plt.imshow(x[:, :, i], vmin=x.min(), vmax=6, interpolation='nearest') plt.colorbar(p) plt.subplot(222) p = plt.imshow(a[:, :, i], interpolation='nearest') plt.colorbar(p) plt.subplot(223) p = plt.imshow(grad[0][:, :, i], interpolation='nearest') plt.colorbar(p) plt.subplot(224) p = plt.imshow(gnorm[:, :, i], interpolation='nearest') plt.colorbar(p) plt.show()
def calc_distmap(tumorgroup): ld = get_tumld(tumorgroup) distmap = np.asarray(tumorgroup['ls']) > 0 distmap = krebsutils.flood_fill(distmap, (0, 0, 0)) distmap = np.logical_not(distmap) distmap = krebsutils.distancemap(distmap) * ld.scale return distmap
def addBulkTissueTumor(epv, tumorgroup, trafo, options): ld = krebsutils.read_lattice_data_from_hdf_by_filename( str(tumorgroup.file.filename), str(tumorgroup['conc'].attrs['LATTICE_PATH'])) ld = transform_ld(trafo, ld) ds_necro = np.asarray(tumorgroup['necro']) data = np.clip(np.asarray(tumorgroup['conc']), 0., 1.) # - np.asanyarray(tumorgroup['necro']), 0., 1.) ds_levelset = -np.minimum(np.asarray(tumorgroup['ls']), 0.4 - ds_necro) ds_levelset = krebsutils.distancemap(ds_levelset) * ld.scale # import matplotlib # matplotlib.use('Qt4Agg') # import matplotlib.pyplot as pyplot # pyplot.imshow(ds_levelset[:,:,8]) # pyplot.contour(ds_levelset[:,:,8],[0.]) # pyplot.show() if 'tumor_clip' in options: clip = clipFactory(options.tumor_clip) else: clip = clipFactory('None') voldata_ls = epv.declareVolumeData(ds_levelset, ld.GetWorldBox()) voldata_cells = epv.declareVolumeData(data, ld.GetWorldBox()) value_bounds = voldata_cells.value_bounds style = """ texture { pigment { function { %f + %f*%s(x,y,z) } color_map { [0.0 color <0.3,0,0>] [0.5 color <1,0.8, 0.3>] [0.8 color <1,1,0.1>] } } finish { specular 0.3 } }""" % (value_bounds[0], (value_bounds[1] - value_bounds[0]), voldata_cells.name) #style = " texture { pigment { color rgb<1,0.8,0.3> } finish { specular 0.3 }}" epv.addIsosurface(voldata_ls, 0., lambda: style, clip, style)
def calc_distmap(ds, ld, level): distmap = np.asarray(ds) > level distmap = krebsutils.flood_fill(distmap, (0,0,0)) distmap = np.logical_not(distmap) distmap = krebsutils.distancemap(distmap)*ld.scale return distmap