20 parser = argparse.ArgumentParser(description=
"Process A 2D Slice Of A 3D Image.")
21 parser.add_argument(
"input_3D_image")
22 parser.add_argument(
"output_3D_image")
23 parser.add_argument(
"slice_number", type=int)
24 args = parser.parse_args()
27 PixelType = itk.ctype(
"short")
28 ImageType =
itk.Image[PixelType, Dimension]
31 reader.SetFileName(args.input_3D_image)
33 inputImage = reader.GetOutput()
36 extractFilter.SetDirectionCollapseToSubmatrix()
39 inputRegion = inputImage.GetBufferedRegion()
40 size = inputRegion.GetSize()
42 start = inputRegion.GetIndex()
43 sliceNumber = args.slice_number
44 start[2] = sliceNumber
45 desiredRegion = inputRegion
46 desiredRegion.SetSize(size)
47 desiredRegion.SetIndex(start)
49 extractFilter.SetExtractionRegion(desiredRegion)
52 pasteFilter.SetSourceImage(medianFilter.GetOutput())
53 pasteFilter.SetDestinationImage(inputImage)
54 pasteFilter.SetDestinationIndex(start)
60 medianFilter.SetRadius(indexRadius)
61 medianFilter.UpdateLargestPossibleRegion()
62 medianImage = medianFilter.GetOutput()
63 pasteFilter.SetSourceRegion(medianImage.GetBufferedRegion())
65 itk.imwrite(pasteFilter.GetOutput(), args.output_3D_image)