Provides an easy way to calculate an itk::Histogram for a mitk::Image. More...
#include <mitkHistogramGenerator.h>
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 HistogramType * | GetHistogram () |
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 |
Provides an easy way to calculate an itk::Histogram for a mitk::Image.
Definition at line 31 of file mitkHistogramGenerator.h.
typedef itk::Statistics::Histogram<double> mitk::HistogramGenerator::HistogramType |
Definition at line 36 of file mitkHistogramGenerator.h.
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.
{ }
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] |
Referenced by mitk::Image::GetScalarHistogram().
float mitk::HistogramGenerator::GetMaximumFrequency | ( | ) | const |
Definition at line 108 of file mitkHistogramGenerator.cpp.
{ return CalculateMaximumFrequency(this->m_Histogram); };
virtual int mitk::HistogramGenerator::GetSize | ( | ) | const [virtual] |
Referenced by InternalCompute().
mitk::HistogramGenerator::mitkClassMacro | ( | HistogramGenerator | , |
itk::Object | |||
) |
static Pointer mitk::HistogramGenerator::New | ( | ) | [static] |
Referenced by QmitkVtkHistogramWidget::ComputeHistogram().
virtual void mitk::HistogramGenerator::SetImage | ( | mitk::Image::ConstPointer | _arg ) | [virtual] |
Referenced by mitk::Image::GetScalarHistogram().
virtual void mitk::HistogramGenerator::SetSize | ( | int | _arg ) | [virtual] |
HistogramType::ConstPointer mitk::HistogramGenerator::m_Histogram [protected] |
Definition at line 55 of file mitkHistogramGenerator.h.
Definition at line 53 of file mitkHistogramGenerator.h.
int mitk::HistogramGenerator::m_Size [protected] |
Definition at line 54 of file mitkHistogramGenerator.h.