1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
import itk
from sys import argv, stderr, exit
itk.auto_progress(2)
if len(argv) < 3 :
print >> stderr, """Missing Parameters
Usage: AntiAliasBinaryImageFilter inputImage outputImage [RMS] [numberOfIterations]"""
exit(1)
inputFilename = argv[1]
outputFilename = argv[2]
maximumRMSError = 0.01
numberOfIterations = 50
if len(argv) > 3 :
maximumRMSError = float( argv[3] )
if len(argv) > 4 :
numberOfIterations = int( argv[4] )
CharPixelType = itk.UC
RealPixelType = itk.F
Dimension = 3
CharImageType = itk.Image[CharPixelType, Dimension]
RealImageType = itk.Image[RealPixelType, Dimension]
ReaderType = itk.ImageFileReader[ CharImageType ]
WriterType = itk.ImageFileWriter[ CharImageType ]
CastToRealFilterType = itk.CastImageFilter[ CharImageType, RealImageType]
RescaleFilter = itk.RescaleIntensityImageFilter[RealImageType, CharImageType ]
AntiAliasFilterType = itk.AntiAliasBinaryImageFilter[RealImageType, RealImageType]
reader = ReaderType.New()
writer = WriterType.New()
toReal = CastToRealFilterType.New()
rescale = RescaleFilter.New()
antiAliasFilter = AntiAliasFilterType.New()
reader.SetFileName( inputFilename )
writer.SetFileName( outputFilename )
rescale.SetOutputMinimum( 0 )
rescale.SetOutputMaximum( 255 )
toReal.SetInput( reader.GetOutput() )
antiAliasFilter.SetInput( toReal.GetOutput() )
antiAliasFilter.SetMaximumRMSError( maximumRMSError )
antiAliasFilter.SetNumberOfIterations( numberOfIterations )
antiAliasFilter.SetNumberOfLayers( 2 )
rescale.SetInput( antiAliasFilter.GetOutput() )
writer.SetInput( rescale.GetOutput() )
writer.Update()
|