-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdistance3d.py
31 lines (23 loc) · 863 Bytes
/
distance3d.py
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
import numpy as np
import itk
import matplotlib.pyplot as plt
def distance_transform_3d(input_vol) :
# Set dimension
Dimension = 3
# Setting for input image
InputPixelType = itk.D
InputImageType = itk.Image[InputPixelType, Dimension]
input_vol = itk.image_from_array(input_vol)
print(itk.template(input_vol))
# Apply a filter: Distance transform
distanceFilter = itk.SignedDanielssonDistanceMapImageFilter[InputImageType,InputImageType].New()
distanceFilter.SetInput(input_vol)
distanceFilter.InsideIsPositiveOn()
distanceFilter.Update()
output_vol = itk.array_from_image(distanceFilter.GetOutput())
output_vol = np.where(output_vol<0,0,output_vol)
return output_vol
def main() :
print("This is a three-dimensional distance transform filter using ITK.")
if __name__ == "__main__":
main()