#include <iostream>
static void
static void
int
main(int argc, char * argv[])
{
if (argc < 3)
{
std::cerr << "Parameters " << std::endl;
std::cerr << " threshold level" << std::endl;
return 1;
}
std::string strThreshold = argv[1];
float threshold = 0.0;
std::stringstream ssThreshold;
ssThreshold << strThreshold;
ssThreshold >> threshold;
std::string strLevel = argv[2];
float level = 0.0;
std::stringstream ssLevel;
ssLevel << strLevel;
ssLevel >> level;
std::cout << "Running with:" << std::endl
<< "Threshold: " << threshold << std::endl
<< "Level: " << level << std::endl;
CreateImage(image);
gradientMagnitudeImageFilter->SetInput(image);
gradientMagnitudeImageFilter->Update();
PerformSegmentation(gradientMagnitudeImageFilter->GetOutput(), threshold, level);
return EXIT_SUCCESS;
}
void
{
image->SetRegions(region);
image->Allocate();
image->FillBuffer(255);
while (!imageIterator.IsAtEnd())
{
if (imageIterator.GetIndex()[0] > 20 && imageIterator.GetIndex()[0] < 50 && imageIterator.GetIndex()[1] > 20 &&
imageIterator.GetIndex()[1] < 50)
imageIterator.Set(50);
++imageIterator;
}
imageIterator.GoToBegin();
while (!imageIterator.IsAtEnd())
{
if (imageIterator.GetIndex()[0] > 60 && imageIterator.GetIndex()[0] < 80 && imageIterator.GetIndex()[1] > 60 &&
imageIterator.GetIndex()[1] < 80)
imageIterator.Set(100);
++imageIterator;
}
imageIterator.GoToBegin();
while (!imageIterator.IsAtEnd())
{
if (imageIterator.GetIndex()[0] > 100 && imageIterator.GetIndex()[0] < 130 && imageIterator.GetIndex()[1] > 100 &&
imageIterator.GetIndex()[1] < 130)
imageIterator.Set(150);
++imageIterator;
}
}
void
{
watershedFilter->SetLevel(level);
watershedFilter->SetInput(image);
watershedFilter->Update();
colormapImageFilter->SetInput(watershedFilter->GetOutput());
colormapImageFilter->Update();
std::stringstream ss;
ss << "output_" << threshold << "_" << level << ".png";
}