#include "itkImage.h"
#include "itkImageFileReader.h"
#include "itkImageFileWriter.h"
#include "itkConfidenceConnectedImageFilter.h"
typedef itk::Image< unsigned char, 2 > ImageType;
int main( int argc, char *argv[])
{
if(argc < 3)
{
std::cerr << "Required: filename.png output.png" << std::endl;
return EXIT_FAILURE;
}
std::string inputFileName = argv[1];
std::string outputFileName = argv[2];
typedef itk::ImageFileReader<ImageType> ReaderType;
ReaderType::Pointer reader = ReaderType::New();
reader->SetFileName(inputFileName.c_str());
reader->Update();
typedef itk::ConfidenceConnectedImageFilter<ImageType, ImageType> ConfidenceConnectedFilterType;
ConfidenceConnectedFilterType::Pointer confidenceConnectedFilter = ConfidenceConnectedFilterType::New();
confidenceConnectedFilter->SetInitialNeighborhoodRadius(3);
confidenceConnectedFilter->SetMultiplier(2);
confidenceConnectedFilter->SetNumberOfIterations(25);
confidenceConnectedFilter->SetReplaceValue(255);
// Set seed
ImageType::IndexType seed;
seed[0] = 60;
seed[1] = 70;
confidenceConnectedFilter->SetSeed(seed);
confidenceConnectedFilter->SetInput(reader->GetOutput());
confidenceConnectedFilter->Update();
typedef itk::ImageFileWriter< ImageType > WriterType;
WriterType::Pointer writer = WriterType::New();
writer->SetFileName(outputFileName);
writer->SetInput(confidenceConnectedFilter->GetOutput());
writer->Update();
return EXIT_SUCCESS;
}