1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20""" An SimpleITK example demonstrating advanced image reading techniques. """
21
22import sys
23
24import SimpleITK as sitk
25import numpy as np
26
27if len(sys.argv) < 2:
28 print("Wrong number of arguments.", file=sys.stderr)
29 print("Usage: " + __file__ + " image_file_name", file=sys.stderr)
30 sys.exit(1)
31
32
34file_reader.SetFileName(sys.argv[1])
35file_reader.ReadImageInformation()
36print(f"image size: {file_reader.GetSize()}")
37print(f"image spacing: {file_reader.GetSpacing()}")
38
39
40for key in file_reader.GetMetaDataKeys():
41 print(key + ": " + file_reader.GetMetaData(key))
42print("-" * 20)
43
44
45
46
47
48image1_file_name = sys.argv[1]
49image2_file_name = sys.argv[1]
50
51parts = 5
52
54file_reader.SetFileName(image1_file_name)
55file_reader.ReadImageInformation()
56image_size = file_reader.GetSize()
57
59 file_reader.GetSize(),
60 file_reader.GetPixelID(),
61 file_reader.GetNumberOfComponents(),
62)
63result_img.SetSpacing(file_reader.GetSpacing())
64result_img.SetOrigin(file_reader.GetOrigin())
65result_img.SetDirection(file_reader.GetDirection())
66
67extract_size = list(file_reader.GetSize())
68extract_size[-1] = extract_size[-1] // parts
69current_index = [0] * file_reader.GetDimension()
70for i in range(parts):
71 if i == (parts - 1):
72 extract_size[-1] = image_size[-1] - current_index[-1]
73 file_reader.SetFileName(image1_file_name)
74 file_reader.SetExtractIndex(current_index)
75 file_reader.SetExtractSize(extract_size)
76 sub_image1 = file_reader.Execute()
77
78 file_reader.SetFileName(image2_file_name)
79 file_reader.SetExtractIndex(current_index)
80 file_reader.SetExtractSize(extract_size)
81 sub_image2 = file_reader.Execute()
82 idx = [slice(None, None)] * file_reader.GetDimension()
83 idx[-1] = current_index[-1]
84 result_img[idx] = sub_image1 - sub_image2
85 current_index[-1] += extract_size[-1]
86del sub_image1
87del sub_image2
88
89
90if np.any(
91 sitk.GetArrayViewFromImage(
93 )
94):
95 print("Subtraction error.")
96 sys.exit(1)
97sys.exit(0)
Read an image file and return a SimpleITK Image.
The Image class for SimpleITK.
SITKIO_EXPORT Image ReadImage(const PathType &filename, PixelIDValueEnum outputPixelType=sitkUnknown, const std::string &imageIO="")
ReadImage is a procedural interface to the ImageFileReader class which is convenient for most image r...