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()}\nimage spacing: {file_reader.GetSpacing()}')
36 for key
in file_reader.GetMetaDataKeys():
37 print(key +
': ' + file_reader.GetMetaData(key))
44 image1_file_name = sys.argv[1]
45 image2_file_name = sys.argv[1]
50 file_reader.SetFileName(image1_file_name)
51 file_reader.ReadImageInformation()
52 image_size = file_reader.GetSize()
54 result_img =
sitk.Image(file_reader.GetSize(), file_reader.GetPixelID(),
55 file_reader.GetNumberOfComponents())
56 result_img.SetSpacing(file_reader.GetSpacing())
57 result_img.SetOrigin(file_reader.GetOrigin())
58 result_img.SetDirection(file_reader.GetDirection())
60 extract_size = list(file_reader.GetSize())
61 extract_size[-1] = extract_size[-1] // parts
62 current_index = [0] * file_reader.GetDimension()
63 for i
in range(parts):
65 extract_size[-1] = image_size[-1] - current_index[-1]
66 file_reader.SetFileName(image1_file_name)
67 file_reader.SetExtractIndex(current_index)
68 file_reader.SetExtractSize(extract_size)
69 sub_image1 = file_reader.Execute()
71 file_reader.SetFileName(image2_file_name)
72 file_reader.SetExtractIndex(current_index)
73 file_reader.SetExtractSize(extract_size)
74 sub_image2 = file_reader.Execute()
75 idx = [slice(
None,
None)]*file_reader.GetDimension()
76 idx[-1] = current_index[-1]
77 result_img[idx] = sub_image1 - sub_image2
78 current_index[-1] += extract_size[-1]
83 if np.any(sitk.GetArrayViewFromImage(result_img
86 print(
'Subtraction error.')