37 int main(
int argc,
char * argv[])
39 const char * infname = argv[1];
40 const char * outfname = argv[2];
41 const unsigned int nbClasses = atoi(argv[3]);
51 const unsigned int Dimension = 2;
52 typedef double PixelType;
53 typedef unsigned short LabeledPixelType;
76 ClassificationFilterType;
77 typedef ClassificationFilterType::KMeansParametersType KMeansParametersType;
102 ClassificationFilterType::Pointer filter = ClassificationFilterType::New();
104 ReaderType::Pointer reader = ReaderType::New();
105 reader->SetFileName(infname);
106 reader->GenerateOutputInformation();
117 const unsigned int sampleSize =
118 ClassificationFilterType::MaxSampleDimension;
119 const unsigned int parameterSize = nbClasses * sampleSize;
120 KMeansParametersType parameters;
122 parameters.SetSize(parameterSize);
125 for (
unsigned int i = 0; i < nbClasses; ++i)
127 for (
unsigned int j = 0; j <
128 reader->GetOutput()->GetNumberOfComponentsPerPixel(); ++j)
130 parameters[i * sampleSize + j] =
132 reader->GetOutput()->GetNumberOfComponentsPerPixel()
137 std::cout <<
"Parameters: " << parameters << std::endl;
147 filter->SetCentroids(parameters);
148 filter->SetInput(reader->GetOutput());
150 WriterType::Pointer writer = WriterType::New();
151 writer->SetInput(filter->GetOutput());
152 writer->SetFileName(outfname);