コード例 #1
0
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()
コード例 #2
0
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
コード例 #3
0
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)
コード例 #4
0
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