Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes

mitk::HistogramGenerator Class Reference

Provides an easy way to calculate an itk::Histogram for a mitk::Image. More...

#include <mitkHistogramGenerator.h>

List of all members.

Public Types

typedef
itk::Statistics::Histogram
< double > 
HistogramType

Public Member Functions

 mitkClassMacro (HistogramGenerator, itk::Object)
virtual void SetImage (mitk::Image::ConstPointer _arg)
virtual void SetSize (int _arg)
virtual int GetSize () const
virtual const HistogramTypeGetHistogram ()
void ComputeHistogram ()
float GetMaximumFrequency () const

Static Public Member Functions

static Pointer New ()
static float CalculateMaximumFrequency (const HistogramType *histogram)

Protected Member Functions

 HistogramGenerator ()
virtual ~HistogramGenerator ()

Protected Attributes

mitk::Image::ConstPointer m_Image
int m_Size
HistogramType::ConstPointer m_Histogram

Detailed Description

Provides an easy way to calculate an itk::Histogram for a mitk::Image.

Definition at line 31 of file mitkHistogramGenerator.h.


Member Typedef Documentation

typedef itk::Statistics::Histogram<double> mitk::HistogramGenerator::HistogramType

Definition at line 36 of file mitkHistogramGenerator.h.


Constructor & Destructor Documentation

mitk::HistogramGenerator::HistogramGenerator (  ) [protected]

Definition at line 38 of file mitkHistogramGenerator.cpp.

                                           : m_Image(NULL), m_Size(256), m_Histogram(NULL)
{

}
mitk::HistogramGenerator::~HistogramGenerator (  ) [protected, virtual]

Definition at line 43 of file mitkHistogramGenerator.cpp.

{
}

Member Function Documentation

float mitk::HistogramGenerator::CalculateMaximumFrequency ( const HistogramType histogram ) [static]

Definition at line 112 of file mitkHistogramGenerator.cpp.

{  
  HistogramType::ConstIterator itr = histogram->Begin();
  HistogramType::ConstIterator end = histogram->End();
  
  float maxFreq = 0;
  while( itr != end )
    {
    maxFreq = vnl_math_max(maxFreq,
                           // get rid of ambiguity with type signature
                           // for vnl_math_max
                           static_cast<float>(itr.GetFrequency()));
    ++itr;
    }
  return maxFreq;
};
void mitk::HistogramGenerator::ComputeHistogram (  )

Definition at line 71 of file mitkHistogramGenerator.cpp.

References AccessByItk_2, InternalCompute(), and mitk::ImageTimeSelector::New().

Referenced by mitk::Image::GetScalarHistogram().

{
  if((m_Histogram.IsNull()) || (m_Histogram->GetMTime() < m_Image->GetMTime()))
  {
    const_cast<mitk::Image*>(m_Image.GetPointer())->SetRequestedRegionToLargestPossibleRegion(); //@todo without this, Image::GetScalarMin does not work for dim==3 (including sliceselector!)
    const_cast<mitk::Image*>(m_Image.GetPointer())->Update();
    mitk::ImageTimeSelector::Pointer timeSelector=mitk::ImageTimeSelector::New();
    timeSelector->SetInput(m_Image);
    timeSelector->SetTimeNr( 0 );
    timeSelector->UpdateLargestPossibleRegion();
    AccessByItk_2( timeSelector->GetOutput() , InternalCompute, this, m_Histogram);
  }

// debug code
  /*
    MITK_INFO << "Histogram modfied 1" << m_Histogram->GetMTime() << std::endl;
    m_Histogram->Modified();
    MITK_INFO << "Histogram modfied 2" << m_Histogram->GetMTime() << std::endl;
    MITK_INFO << "Image modfied" << m_Image->GetMTime() << std::endl;
  const unsigned int histogramSize = m_Histogram->Size();

  MITK_INFO << "Histogram size " << histogramSize << std::endl;
  
  HistogramType::ConstIterator itr = GetHistogram()->Begin();
  HistogramType::ConstIterator end = GetHistogram()->End();
  
  int bin = 0;
  while( itr != end )
    {
    MITK_INFO << "bin = " << GetHistogram()->GetBinMin(0,bin) << "--" << GetHistogram()->GetBinMax(0,bin) << " frequency = ";
    MITK_INFO << itr.GetFrequency() << std::endl;
    ++itr;
    ++bin;
    }
    */ 
}
virtual const HistogramType* mitk::HistogramGenerator::GetHistogram (  ) [virtual]
float mitk::HistogramGenerator::GetMaximumFrequency (  ) const

Definition at line 108 of file mitkHistogramGenerator.cpp.

virtual int mitk::HistogramGenerator::GetSize (  ) const [virtual]

Referenced by InternalCompute().

mitk::HistogramGenerator::mitkClassMacro ( HistogramGenerator  ,
itk::Object   
)
static Pointer mitk::HistogramGenerator::New (  ) [static]
virtual void mitk::HistogramGenerator::SetImage ( mitk::Image::ConstPointer  _arg ) [virtual]
virtual void mitk::HistogramGenerator::SetSize ( int  _arg ) [virtual]

Member Data Documentation

HistogramType::ConstPointer mitk::HistogramGenerator::m_Histogram [protected]

Definition at line 55 of file mitkHistogramGenerator.h.

Definition at line 53 of file mitkHistogramGenerator.h.

Definition at line 54 of file mitkHistogramGenerator.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines