22 import SimpleITK
as sitk
26 print(
"Wrong number of arguments.", file=sys.stderr)
27 print(
"Usage: " + __file__ +
" image_file_name", file=sys.stderr)
32 file_reader.SetFileName(sys.argv[1])
33 file_reader.ReadImageInformation()
34 print(f
"image size: {file_reader.GetSize()}")
35 print(f
"image spacing: {file_reader.GetSpacing()}")
38 for key
in file_reader.GetMetaDataKeys():
39 print(key +
": " + file_reader.GetMetaData(key))
46 image1_file_name = sys.argv[1]
47 image2_file_name = sys.argv[1]
52 file_reader.SetFileName(image1_file_name)
53 file_reader.ReadImageInformation()
54 image_size = file_reader.GetSize()
57 file_reader.GetSize(),
58 file_reader.GetPixelID(),
59 file_reader.GetNumberOfComponents(),
61 result_img.SetSpacing(file_reader.GetSpacing())
62 result_img.SetOrigin(file_reader.GetOrigin())
63 result_img.SetDirection(file_reader.GetDirection())
65 extract_size = list(file_reader.GetSize())
66 extract_size[-1] = extract_size[-1] // parts
67 current_index = [0] * file_reader.GetDimension()
68 for i
in range(parts):
70 extract_size[-1] = image_size[-1] - current_index[-1]
71 file_reader.SetFileName(image1_file_name)
72 file_reader.SetExtractIndex(current_index)
73 file_reader.SetExtractSize(extract_size)
74 sub_image1 = file_reader.Execute()
76 file_reader.SetFileName(image2_file_name)
77 file_reader.SetExtractIndex(current_index)
78 file_reader.SetExtractSize(extract_size)
79 sub_image2 = file_reader.Execute()
80 idx = [slice(
None,
None)] * file_reader.GetDimension()
81 idx[-1] = current_index[-1]
82 result_img[idx] = sub_image1 - sub_image2
83 current_index[-1] += extract_size[-1]
89 sitk.GetArrayViewFromImage(
95 print(
"Subtraction error.")