ITK/Examples/Statistics/Histogram: Difference between revisions

From KitwarePublic
< ITK‎ | Examples
Jump to navigationJump to search
m (Fixing bug (double assignment))
(Deprecated content that is moved to sphinx)
 
Line 1: Line 1:
==Histogram.cxx==
{{warning|1=The media wiki content on this page is no longer maintained.  The examples presented on the https://itk.org/Wiki/*  pages likely require ITK version 4.13 or earlier releases.  In many cases, the examples on this page no longer conform to the best practices for modern ITK versions.
<source lang="cpp">
}}
#include "itkHistogram.h"


int main(int, char *[])
[https://itk.org/ITKExamples[ITK Sphinx Examples]]
{
  typedef float MeasurementType;
  typedef itk::Statistics::Histogram< MeasurementType,
          itk::Statistics::DenseFrequencyContainer2 > HistogramType;
  HistogramType::Pointer histogram = HistogramType::New();
 
  unsigned int dimension = 3;
  HistogramType::SizeType size(dimension);
 
  unsigned int binsPerDimension = 30;
  size.Fill(binsPerDimension);
 
  HistogramType::MeasurementVectorType lowerBound;
  lowerBound.SetSize(binsPerDimension);
  lowerBound.Fill(1.1);
 
  HistogramType::MeasurementVectorType upperBound;
  upperBound.SetSize(binsPerDimension);
  upperBound.Fill(6.2);
 
  histogram->SetMeasurementVectorSize(dimension);
  histogram->Initialize(size, lowerBound, upperBound );
 
  histogram->SetFrequency(0UL, 0.0);
  histogram->SetFrequency(1UL, 2.0);
  histogram->SetFrequency(2UL, 3.0);
  histogram->SetFrequency(3UL, 2.0);
  histogram->SetFrequency(4UL, 0.5);
  histogram->SetFrequency(5UL, 1.0);
  histogram->SetFrequency(6UL, 5.0);
  histogram->SetFrequency(7UL, 2.5);
  histogram->SetFrequency(8UL, 0.0);
 
  HistogramType::IndexType index(dimension);
  index[0] = 0;
  index[1] = 2;
  index[2] = 4;
  std::cout << "Frequency of the bin at index  " << index
            << " is " << histogram->GetFrequency(index) << std::endl;
 
   
  std::cout << "Measurement vector at bin " << index << " is "
            << histogram->GetMeasurementVector(index) << std::endl;
   
  HistogramType::MeasurementVectorType mv(dimension);
  mv[0] = 4.1;
  mv[1] = 5.6;
  mv[2] = 3.6;
 
  HistogramType::IndexType resultingIndex;
  histogram->GetIndex(mv, resultingIndex);
 
  std::cout << "Index of the measurement vector " << mv
            << " is " << resultingIndex << std::endl;
 
  index.Fill(100);
  if ( histogram->IsIndexOutOfBounds(index) )
    {
    std::cout << "Index " << index << " is out of bounds." << std::endl;
    }
 
  std::cout << "Number of bins = " << histogram->Size()
            << " Total frequency = " << histogram->GetTotalFrequency()
            << " Dimension sizes = " << histogram->GetSize() << std::endl;
 
  std::cout << "50th percentile along the first dimension = "
            << histogram->Quantile(0, 0.5) << std::endl;
 
  return EXIT_SUCCESS;
}
</source>
 
{{ITKCMakeLists|{{SUBPAGENAME}}}}

Latest revision as of 18:31, 31 May 2019

Warning: The media wiki content on this page is no longer maintained. The examples presented on the https://itk.org/Wiki/* pages likely require ITK version 4.13 or earlier releases. In many cases, the examples on this page no longer conform to the best practices for modern ITK versions.

[ITK Sphinx Examples]