int
main(int argc, char * argv[])
{
if (argc < 2)
{
std::cerr << "Missing command line arguments" << std::endl;
std::cerr << "Usage : ImageHistogram1 inputImageFileName " << std::endl;
return EXIT_FAILURE;
}
using PixelType = unsigned char;
constexpr unsigned int Dimension = 2;
ImageType::Pointer input;
try
{
}
{
std::cerr << "Problem reading image file : " << argv[1] << std::endl;
std::cerr << excp << std::endl;
return EXIT_FAILURE;
}
auto adaptor = AdaptorType::New();
adaptor->SetImage(input);
using HistogramMeasurementType = PixelType;
using FilterType =
auto filter = FilterType::New();
constexpr unsigned int numberOfComponents = 1;
HistogramType::SizeType size(numberOfComponents);
size.Fill(255);
filter->SetInput(adaptor);
filter->SetHistogramSize(size);
filter->SetMarginalScale(10);
HistogramType::MeasurementVectorType min(numberOfComponents);
HistogramType::MeasurementVectorType max(numberOfComponents);
min.Fill(0);
max.Fill(255);
filter->SetHistogramBinMinimum(min);
filter->SetHistogramBinMaximum(max);
filter->Update();
const HistogramType::ConstPointer histogram = filter->GetOutput();
const unsigned int histogramSize = histogram->Size();
std::cout << "Histogram size " << histogramSize << std::endl;
for (unsigned int bin = 0; bin < histogramSize; ++bin)
{
std::cout << "bin = " << bin << " frequency = ";
std::cout << histogram->GetFrequency(bin, 0) << std::endl;
}
return EXIT_SUCCESS;
}
Standard exception handling object.
Templated n-dimensional image class.
This class stores measurement vectors in the context of n-dimensional histogram.
This class provides ListSample interface to ITK Image.
Computes the Histogram corresponding to a Sample.
TOutputImage::Pointer ReadImage(const std::string &filename)