/
ex_seeded_distance_map.txt
40 lines (29 loc) · 1.29 KB
/
ex_seeded_distance_map.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Seeded distance map
===================
This example shows how to use the :ref:`seeded distance map command <sdmap>`.
The example creates simple geometry consisting of four spheres, and calculates seeded
distance map using an arbitrary point inside the top-left sphere as a seed point.
::
def seeded_distance_map():
"""
Demonstrates calculation of a seeded distance map.
"""
# Create geometry
geometry = pi.newimage(ImageDataType.UINT8, 50, 50, 50)
pi.sphere(geometry, [15, 15, 25], 10, 255)
pi.sphere(geometry, [15, 15 + 18, 25], 10.0, 255)
pi.sphere(geometry, [15 + 18, 15 + 18, 25], 10.0, 255)
pi.sphere(geometry, [15 + 22, 15, 25], 10.0, 255)
pi.writetif(geometry, output_file("sdmap_geometry"))
# Create seeds
seeds = pi.newlike(geometry)
pi.set(seeds, [24, 19, 25], 255)
pi.writetif(seeds, output_file("sdmap_seeds"))
# Calculate seeded distance map
sdmap = pi.newlike(geometry, ImageDataType.FLOAT32)
pi.sdmap(seeds, geometry, sdmap)
pi.writetif(sdmap, output_file("sdmap_result"))
.. figure:: figures/sdmap.png
:scale: 75 %
:alt: Seeded distance map
The geometry (left) and seed points (middle) given as input to the seeded distance map algorithm. The resulting output distance map (right). Only the central slice of each volume image is shown.