ITK  5.0.0
Insight Segmentation and Registration Toolkit
WikiExamples/ImageSegmentation/ConfidenceConnectedImageFilter.cxx
#include "itkImage.h"
#include "itksys/SystemTools.hxx"
#include <sstream>
#include "QuickView.h"
int main( int argc, char *argv[])
{
if(argc < 4)
{
std::cerr << "Required: filename.png seedX seedY" << std::endl;
return EXIT_FAILURE;
}
std::string inputFileName = argv[1];
using ReaderType = itk::ImageFileReader<ImageType>;
ReaderType::Pointer reader = ReaderType::New();
reader->SetFileName(inputFileName.c_str());
reader->Update();
using ConfidenceConnectedFilterType = itk::ConfidenceConnectedImageFilter<ImageType, ImageType>;
ConfidenceConnectedFilterType::Pointer confidenceConnectedFilter = ConfidenceConnectedFilterType::New();
confidenceConnectedFilter->SetInitialNeighborhoodRadius(3);
confidenceConnectedFilter->SetMultiplier(3);
confidenceConnectedFilter->SetNumberOfIterations(25);
confidenceConnectedFilter->SetReplaceValue(255);
// Set seed
seed[0] = atoi(argv[2]);
seed[1] = atoi(argv[3]);
confidenceConnectedFilter->SetSeed(seed);
confidenceConnectedFilter->SetInput(reader->GetOutput());
QuickView viewer;
viewer.AddImage(
reader->GetOutput(),true,
itksys::SystemTools::GetFilenameName(inputFileName));
std::stringstream desc;
desc << "ConfidenceConnected Seed: " << seed[0] << ", " << seed[1];
viewer.AddImage(
confidenceConnectedFilter->GetOutput(),
true,
desc.str());
viewer.Visualize();
return EXIT_SUCCESS;
}