#include "itkConnectedThresholdImageFilter.h" #include "itkImage.h" #include "itkImageFileReader.h" #include "itkImageFileWriter.h" int main( int argc, char *argv[] ) { if( argc < 2 ) { std::cerr << "Missing Parameters " << std::endl; std::cerr << "Usage: " << argv[0]; std::cerr << " inputImage outputImage" << std::endl; return 1; } typedef unsigned char InputPixelType; typedef unsigned char OutputPixelType; const unsigned int Dimension = 3; typedef itk::Image< InputPixelType, Dimension > InputImageType; typedef itk::Image< OutputPixelType, Dimension > OutputImageType; // // We instantiate reader and writer types // typedef itk::ImageFileReader< InputImageType > ReaderType; typedef itk::ImageFileWriter< OutputImageType > WriterType; ReaderType::Pointer reader = ReaderType::New(); WriterType::Pointer writer = WriterType::New(); reader->SetFileName( argv[1] ); writer->SetFileName( argv[2] ); typedef itk::ConnectedThresholdImageFilter< InputImageType, OutputImageType > ConnectedFilterType; ConnectedFilterType::Pointer connectedThreshold = ConnectedFilterType::New(); connectedThreshold->SetInput( reader->GetOutput() ); writer->SetInput( connectedThreshold->GetOutput() ); connectedThreshold->SetReplaceValue( 255 ); connectedThreshold->SetLower( atoi( argv[6] ) ); connectedThreshold->SetUpper( atoi( argv[7] ) ); InputImageType::IndexType index; index[0] = atoi( argv[3] ); index[1] = atoi( argv[4] ); index[2] = atoi( argv[5] ); connectedThreshold->SetSeed( index ); try { writer->Update(); } catch( itk::ExceptionObject & excep ) { std::cerr << "Exception caught !" << std::endl; std::cerr << excep << std::endl; } return 0; }