Skip to content

Commit

Permalink
ENH: Modified most Python examples to make use of argparse.
Browse files Browse the repository at this point in the history
  • Loading branch information
kian-weimer authored and dzenanz committed Jun 14, 2021
1 parent 3be7e4c commit 2985782
Show file tree
Hide file tree
Showing 61 changed files with 607 additions and 701 deletions.
13 changes: 7 additions & 6 deletions src/Bridge/VtkGlue/ConvertAnRGBitkImageTovtkImageData/Code.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,21 @@

import sys
import itk
import argparse

from distutils.version import StrictVersion as VS

if VS(itk.Version.GetITKVersion()) < VS("5.2.0"):
print("ITK 5.2.0 is required.")
sys.exit(1)

if len(sys.argv) != 2:
print("Usage: " + sys.argv[0] + " <InputFileName>")
sys.exit(1)

imageFileName = sys.argv[1]
parser = argparse.ArgumentParser(
description="Convert An RBG itk Image to vtk Image Data."
)
parser.add_argument("input_image")
args = parser.parse_args()

inputImage = itk.imread(imageFileName)
inputImage = itk.imread(args.input_image)

vtkImage = itk.image_to_vtk_image(inputImage)

Expand Down
11 changes: 5 additions & 6 deletions src/Bridge/VtkGlue/ConvertAnitkImageTovtkImageData/Code.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,19 @@

import sys
import itk
import argparse

from distutils.version import StrictVersion as VS

if VS(itk.Version.GetITKVersion()) < VS("5.2.0"):
print("ITK 5.2.0 is required.")
sys.exit(1)

if len(sys.argv) != 2:
print("Usage: " + sys.argv[0] + " <InputFileName>")
sys.exit(1)

imageFileName = sys.argv[1]
parser = argparse.ArgumentParser(description="Convert An itk Image to vtk Image Data.")
parser.add_argument("input_image")
args = parser.parse_args()

inputImage = itk.imread(imageFileName)
inputImage = itk.imread(args.input_image)

vtkImage = itk.image_to_vtk_image(inputImage)

Expand Down
13 changes: 7 additions & 6 deletions src/Bridge/VtkGlue/ConvertRGBvtkImageDataToAnitkImage/Code.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,23 @@
# See the License for the specific language governing permissions and
# limitations under the License.

import sys
import itk
import vtk
import argparse

if len(sys.argv) < 2:
print("Usage: " + sys.argv[0] + " <InputFileName>")
sys.exit(1)
imageFileName = sys.argv[1]
parser = argparse.ArgumentParser(
description="Convert RBG vtk Image Data To An itk Image."
)
parser.add_argument("input_image")
args = parser.parse_args()

Dimension = 2
PixelComponentType = itk.UC
PixelType = itk.RGBPixel[PixelComponentType]
ImageType = itk.Image[PixelType, Dimension]

reader = vtk.vtkPNGReader()
reader.SetFileName(imageFileName)
reader.SetFileName(args.input_image)
reader.SetDataScalarTypeToUnsignedChar()

vtkToItkFilter = itk.VTKImageToImageFilter[ImageType].New()
Expand Down
11 changes: 5 additions & 6 deletions src/Bridge/VtkGlue/ConvertvtkImageDataToAnitkImage/Code.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,20 @@
# See the License for the specific language governing permissions and
# limitations under the License.

import sys
import itk
import vtk
import argparse

if len(sys.argv) < 2:
print("Usage: " + sys.argv[0] + " <InputFileName>")
sys.exit(1)
imageFileName = sys.argv[1]
parser = argparse.ArgumentParser(description="Convert vtk Image Data To An itk Image.")
parser.add_argument("input_image")
args = parser.parse_args()

Dimension = 2
PixelType = itk.UC
ImageType = itk.Image[PixelType, Dimension]

reader = vtk.vtkPNGReader()
reader.SetFileName(imageFileName)
reader.SetFileName(args.input_image)
reader.SetDataScalarTypeToUnsignedChar()

magnitude = vtk.vtkImageMagnitude()
Expand Down
12 changes: 5 additions & 7 deletions src/Core/Common/GetImageSize/Code.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.

import sys
import numpy as np
import itk
import argparse

if len(sys.argv) != 2:
print("Usage: " + sys.argv[0] + " <inputImageFile>")
sys.exit(1)
parser = argparse.ArgumentParser(description="Get Image Size.")
parser.add_argument("input_image")
args = parser.parse_args()

inputImageFile = sys.argv[1]

image = itk.imread(inputImageFile, itk.UC)
image = itk.imread(args.input_image, itk.UC)

region = image.GetLargestPossibleRegion()
size = region.GetSize()
Expand Down
13 changes: 7 additions & 6 deletions src/Core/Common/ReadWriteVectorImage/Code.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.

import sys
import itk
import argparse

if len(sys.argv) != 3:
print("Usage: " + sys.argv[0] + " <InputFileName> <OutputFileName>")
sys.exit(1)
parser = argparse.ArgumentParser(description="Read Write Vector Image.")
parser.add_argument("input_image")
parser.add_argument("output_image")
args = parser.parse_args()

VectorDimension = 4

Expand All @@ -30,9 +31,9 @@
ImageType = itk.Image[PixelType, ImageDimension]

reader = itk.ImageFileReader[ImageType].New()
reader.SetFileName(sys.argv[1])
reader.SetFileName(args.input_image)

writer = itk.ImageFileWriter[ImageType].New()
writer.SetFileName(sys.argv[2])
writer.SetFileName(args.output_image)
writer.SetInput(reader.GetOutput())
writer.Update()
12 changes: 5 additions & 7 deletions src/Core/Common/SetPixelValueInOneImage/Code.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.

import sys
import itk
import argparse

if len(sys.argv) != 2:
print("Usage: " + sys.argv[0] + " <OutputFileName>")
sys.exit(1)
parser = argparse.ArgumentParser(description="Set Pixel Value In One Image.")
parser.add_argument("output_image")
args = parser.parse_args()

Dimension = 2

PixelType = itk.UC

OutputFileName = sys.argv[1]

ImageType = itk.Image[PixelType, Dimension]

region = itk.ImageRegion[Dimension]()
Expand Down Expand Up @@ -96,4 +94,4 @@

image.SetPixel(pixelIndex, 200)

itk.imwrite(image, OutputFileName)
itk.imwrite(image, args.output_image)
12 changes: 6 additions & 6 deletions src/Core/Common/StreamAPipeline/Code.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,33 +16,33 @@

import sys
import itk
import argparse

from distutils.version import StrictVersion as VS

if VS(itk.Version.GetITKVersion()) < VS("4.10.0"):
print("ITK 4.10.0 is required.")
sys.exit(1)

if len(sys.argv) != 2:
print("Usage: " + sys.argv[0] + " <NumberOfSplits>")
sys.exit(1)
numberOfSplits = int(sys.argv[1])
parser = argparse.ArgumentParser(description="Stream A Pipeline.")
parser.add_argument("number_of_splits", type=int)
args = parser.parse_args()

Dimension = 2
PixelType = itk.UC
ImageType = itk.Image[PixelType, Dimension]

source = itk.RandomImageSource[ImageType].New()
size = itk.Size[Dimension]()
size.Fill(numberOfSplits)
size.Fill(args.number_of_splits)
source.SetSize(size)

monitorFilter = itk.PipelineMonitorImageFilter[ImageType].New()
monitorFilter.SetInput(source.GetOutput())

streamingFilter = itk.StreamingImageFilter[ImageType, ImageType].New()
streamingFilter.SetInput(monitorFilter.GetOutput())
streamingFilter.SetNumberOfStreamDivisions(numberOfSplits)
streamingFilter.SetNumberOfStreamDivisions(args.number_of_splits)

streamingFilter.Update()

Expand Down
33 changes: 15 additions & 18 deletions src/Core/ImageFunction/ResampleSegmentedImage/Code.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,45 +15,42 @@
# limitations under the License.

import itk
import sys
import argparse

if len(sys.argv) != 6:
print(
f"Usage: {sys.argv[0]} input_image_file spacing_fraction sigma_fraction output_image_file_label_image_interpolator output_image_file_nearest_neighbor_interpolator"
)
sys.exit(1)
parser = argparse.ArgumentParser(description="Resample Segmented Image.")
parser.add_argument("input_image")
parser.add_argument("spacing_fraction", type=float)
parser.add_argument("sigma_fraction", type=float)
parser.add_argument("output_image_file_label_image_interpolator")
parser.add_argument("output_image_file_nearest_neighbor_interpolator")
args = parser.parse_args()

input_image_file = sys.argv[1]
spacing_fraction = float(sys.argv[2])
sigma_fraction = float(sys.argv[3])
output_image_file_label_image_interpolator = sys.argv[4]
output_image_file_nearest_neighbor_interpolator = sys.argv[5]

input_image = itk.imread(input_image_file)
input_image = itk.imread(args.input_image)

resize_filter = itk.ResampleImageFilter.New(input_image)

input_spacing = itk.spacing(input_image)
output_spacing = [s * spacing_fraction for s in input_spacing]
output_spacing = [s * args.spacing_fraction for s in input_spacing]
resize_filter.SetOutputSpacing(output_spacing)

input_size = itk.size(input_image)
output_size = [
int(s * input_spacing[dim] / spacing_fraction) for dim, s in enumerate(input_size)
int(s * input_spacing[dim] / args.spacing_fraction)
for dim, s in enumerate(input_size)
]
resize_filter.SetSize(output_size)

gaussian_interpolator = itk.LabelImageGaussianInterpolateImageFunction.New(input_image)
sigma = [s * sigma_fraction for s in output_spacing]
sigma = [s * args.sigma_fraction for s in output_spacing]
gaussian_interpolator.SetSigma(sigma)
gaussian_interpolator.SetAlpha(3.0)
resize_filter.SetInterpolator(gaussian_interpolator)

itk.imwrite(resize_filter, output_image_file_label_image_interpolator)
itk.imwrite(resize_filter, args.output_image_file_label_image_interpolator)

nearest_neighbor_interpolator = itk.NearestNeighborInterpolateImageFunction.New(
input_image
)
resize_filter.SetInterpolator(nearest_neighbor_interpolator)

itk.imwrite(resize_filter, output_image_file_nearest_neighbor_interpolator)
itk.imwrite(resize_filter, args.output_image_file_nearest_neighbor_interpolator)
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,16 @@
# See the License for the specific language governing permissions and
# limitations under the License.

import sys
import itk
import argparse

if len(sys.argv) != 6:
print(
"Usage: " + sys.argv[0] + " <inputImage> <outputImage> "
"<numberOfIterations> <timeStep> <conductance>"
)
sys.exit(1)

inputImage = sys.argv[1]
outputImage = sys.argv[2]
numberOfIterations = int(sys.argv[3])
timeStep = float(sys.argv[4])
conductance = float(sys.argv[5])
parser = argparse.ArgumentParser(description="Compute Curvature Anisotropic Diffusion.")
parser.add_argument("input_image")
parser.add_argument("output_image")
parser.add_argument("number_of_iterations", type=int)
parser.add_argument("time_step", type=float)
parser.add_argument("conductance", type=float)
args = parser.parse_args()

InputPixelType = itk.F
OutputPixelType = itk.UC
Expand All @@ -39,17 +34,17 @@

ReaderType = itk.ImageFileReader[InputImageType]
reader = ReaderType.New()
reader.SetFileName(inputImage)
reader.SetFileName(args.input_image)

FilterType = itk.CurvatureAnisotropicDiffusionImageFilter[
InputImageType, InputImageType
]
curvatureAnisotropicDiffusionFilter = FilterType.New()

curvatureAnisotropicDiffusionFilter.SetInput(reader.GetOutput())
curvatureAnisotropicDiffusionFilter.SetNumberOfIterations(numberOfIterations)
curvatureAnisotropicDiffusionFilter.SetTimeStep(timeStep)
curvatureAnisotropicDiffusionFilter.SetConductanceParameter(conductance)
curvatureAnisotropicDiffusionFilter.SetNumberOfIterations(args.number_of_iterations)
curvatureAnisotropicDiffusionFilter.SetTimeStep(args.time_step)
curvatureAnisotropicDiffusionFilter.SetConductanceParameter(args.conductance)

RescaleFilterType = itk.RescaleIntensityImageFilter[InputImageType, OutputImageType]
rescaler = RescaleFilterType.New()
Expand All @@ -63,7 +58,7 @@

WriterType = itk.ImageFileWriter[OutputImageType]
writer = WriterType.New()
writer.SetFileName(outputImage)
writer.SetFileName(args.output_image)
writer.SetInput(rescaler.GetOutput())

writer.Update()
Loading

1 comment on commit 2985782

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.