20 if len(sys.argv) != 4:
21 print(
'Usage: ' + sys.argv[0] +
22 ' input3DImageFile output3DImageFile sliceNumber')
24 inputFilename = sys.argv[1]
25 outputFilename = sys.argv[2]
28 PixelType = itk.ctype(
'short')
29 ImageType =
itk.Image[PixelType, Dimension]
32 reader.SetFileName(inputFilename)
34 inputImage = reader.GetOutput()
37 extractFilter.SetDirectionCollapseToSubmatrix()
40 inputRegion = inputImage.GetBufferedRegion()
41 size = inputRegion.GetSize()
43 start = inputRegion.GetIndex()
44 sliceNumber = int(sys.argv[3])
45 start[2] = sliceNumber
46 desiredRegion = inputRegion
47 desiredRegion.SetSize(size)
48 desiredRegion.SetIndex(start)
50 extractFilter.SetExtractionRegion(desiredRegion)
53 pasteFilter.SetSourceImage(medianFilter.GetOutput())
54 pasteFilter.SetDestinationImage(inputImage)
55 pasteFilter.SetDestinationIndex(start)
61 medianFilter.SetRadius(indexRadius)
62 medianFilter.UpdateLargestPossibleRegion()
63 medianImage = medianFilter.GetOutput()
64 pasteFilter.SetSourceRegion(medianImage.GetBufferedRegion())
66 itk.imwrite(pasteFilter.GetOutput(), outputFilename)