ITK  5.4.0
Insight Toolkit
SphinxExamples/src/Filtering/ImageGrid/ResampleAScalarImage/Code.py
1 #!/usr/bin/env python
2 
3 # Copyright NumFOCUS
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 # https://www.apache.org/licenses/LICENSE-2.0.txt
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 
17 import itk
18 import argparse
19 
20 parser = argparse.ArgumentParser(description="Resample A Scalar Image.")
21 parser.add_argument("input_image")
22 parser.add_argument("output_image")
23 parser.add_argument("size_x", type=int)
24 parser.add_argument("size_y", type=int)
25 args = parser.parse_args()
26 
27 output_size = [args.size_x, args.size_y]
28 
29 input_image = itk.imread(args.input_image)
30 
31 input_spacing = itk.spacing(input_image)
32 input_size = itk.size(input_image)
33 dimension = input_image.GetImageDimension()
34 output_spacing = [
35  input_spacing[dim] * input_size[dim] / output_size[dim] for dim in range(dimension)
36 ]
37 
38 transform = itk.IdentityTransform[itk.D, dimension].New()
39 
40 output_image = itk.resample_image_filter(
41  input_image,
42  size=output_size,
43  output_spacing=output_spacing,
44  output_origin=itk.origin(input_image),
45  transform=transform,
46 )
47 
48 itk.imwrite(output_image, args.output_image)
itk::IdentityTransform
Implementation of an Identity Transform.
Definition: itkIdentityTransform.h:50
New
static Pointer New()