int main( int argc, char* argv[] )
{
if( argc < 4 )
{
std::cerr << "Usage: " << std::endl;
std::cerr << argv[0] << " <inputImage> <outputImage> <radius>";
std::cerr << std::endl;
return EXIT_FAILURE;
}
const char * inputImage = argv[1];
const char * outputImage = argv[2];
const unsigned int radiusValue = atoi( argv[3] );
typedef unsigned char PixelType;
const unsigned int Dimension = 2;
ReaderType::Pointer reader = ReaderType::New();
reader->SetFileName( inputImage );
StructuringElementType;
StructuringElementType::RadiusType radius;
radius.Fill( radiusValue );
StructuringElementType structuringElement =
StructuringElementType::Ball( radius );
StructuringElementType > BinaryErodeImageFilterType;
BinaryErodeImageFilterType::Pointer erodeFilter =
BinaryErodeImageFilterType::New();
erodeFilter->SetInput( reader->GetOutput() );
erodeFilter->SetKernel( structuringElement );
WriterType::Pointer writer = WriterType::New();
writer->SetInput( erodeFilter->GetOutput() );
writer->SetFileName( outputImage );
try
{
writer->Update();
}
{
std::cerr << "Error: " << e << std::endl;
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}