Skip to content

Commit 473070b

Browse files
thewtexdzenanz
authored andcommitted
STYLE: Use Pythonic interface for ResampleAnImage
1 parent fc82244 commit 473070b

File tree

1 file changed

+22
-45
lines changed
  • src/Filtering/ImageGrid/ResampleAnImage

1 file changed

+22
-45
lines changed

src/Filtering/ImageGrid/ResampleAnImage/Code.py

Lines changed: 22 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -18,60 +18,37 @@
1818
import itk
1919

2020
if len(sys.argv) != 4:
21-
print("Usage: " + sys.argv[0] + " <inputImage> <outputImage> <scale>")
21+
print("Usage: " + sys.argv[0] + " <input_image> <output_image> <scale>")
2222
sys.exit(1)
2323

24-
inputImage = sys.argv[1]
25-
outputImage = sys.argv[2]
24+
input_image = sys.argv[1]
25+
output_image = sys.argv[2]
2626
scale = float(sys.argv[3])
2727

28-
PixelType = itk.UC
29-
ScalarType = itk.D
30-
Dimension = 2
28+
input_image = itk.imread(input_image)
3129

32-
ImageType = itk.Image[PixelType, Dimension]
30+
size = itk.size(input_image)
31+
spacing = itk.spacing(input_image)
3332

34-
ReaderType = itk.ImageFileReader[ImageType]
35-
reader = ReaderType.New()
36-
reader.SetFileName(inputImage)
37-
reader.Update()
33+
central_pixel = [int(s/2) for s in size]
34+
central_point = [float(p) for p in central_pixel]
3835

39-
inputImage = reader.GetOutput()
36+
Dimension = input_image.GetImageDimension()
37+
scale_transform = itk.ScaleTransform[itk.D, Dimension].New()
4038

41-
size = inputImage.GetLargestPossibleRegion().GetSize()
42-
spacing = inputImage.GetSpacing()
39+
parameters = scale_transform.GetParameters()
40+
for i in range(len(parameters)):
41+
parameters[i] = scale
4342

44-
centralPixel = itk.Index[Dimension]()
45-
centralPixel[0] = int(size[0] / 2)
46-
centralPixel[1] = int(size[1] / 2)
47-
centralPoint = itk.Point[ScalarType, Dimension]()
48-
centralPoint[0] = centralPixel[0]
49-
centralPoint[1] = centralPixel[1]
43+
scale_transform.SetParameters(parameters)
44+
scale_transform.SetCenter(central_point)
5045

51-
scaleTransform = itk.ScaleTransform[ScalarType, Dimension].New()
46+
interpolator = itk.LinearInterpolateImageFunction.New(input_image)
5247

53-
parameters = scaleTransform.GetParameters()
54-
parameters[0] = scale
55-
parameters[1] = scale
48+
resampled = itk.resample_image_filter(input_image,
49+
transform=scale_transform,
50+
interpolator=interpolator,
51+
size=size,
52+
output_spacing=spacing)
5653

57-
scaleTransform.SetParameters(parameters)
58-
scaleTransform.SetCenter(centralPoint)
59-
60-
interpolatorType = itk.LinearInterpolateImageFunction[ImageType, ScalarType]
61-
interpolator = interpolatorType.New()
62-
63-
resamplerType = itk.ResampleImageFilter[ImageType, ImageType]
64-
resampleFilter = resamplerType.New()
65-
66-
resampleFilter.SetInput(inputImage)
67-
resampleFilter.SetTransform(scaleTransform)
68-
resampleFilter.SetInterpolator(interpolator)
69-
resampleFilter.SetSize(size)
70-
resampleFilter.SetOutputSpacing(spacing)
71-
72-
WriterType = itk.ImageFileWriter[ImageType]
73-
writer = WriterType.New()
74-
writer.SetFileName(outputImage)
75-
writer.SetInput(resampleFilter.GetOutput())
76-
77-
writer.Update()
54+
itk.imwrite(resampled, output_image)

0 commit comments

Comments
 (0)