00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkDenseFrequencyContainer_h
00018 #define __itkDenseFrequencyContainer_h
00019
00020 #include <map>
00021 #include "itkObjectFactory.h"
00022 #include "itkObject.h"
00023 #include "itkValarrayImageContainer.h"
00024
00025 namespace itk{
00026 namespace Statistics{
00027
00039 class ITK_EXPORT DenseFrequencyContainer
00040 : public Object
00041 {
00042 public:
00044 typedef DenseFrequencyContainer Self;
00045 typedef Object Superclass;
00046 typedef SmartPointer<Self> Pointer;
00047 typedef SmartPointer<const Self> ConstPointer;
00048
00050 itkTypeMacro(DenseFrequencyContainer, Object);
00051
00053 itkNewMacro(Self);
00054
00056 typedef unsigned long InstanceIdentifier ;
00057
00059 typedef float FrequencyType ;
00060
00062 typedef ValarrayImageContainer< InstanceIdentifier, FrequencyType >
00063 FrequencyContainerType ;
00064 typedef FrequencyContainerType::Pointer FrequencyContainerPointer ;
00065
00068 void Initialize(unsigned long length) ;
00069
00072 void SetToZero() ;
00073
00076 bool SetFrequency(const InstanceIdentifier id, const FrequencyType value) ;
00077
00081 bool IncreaseFrequency(const InstanceIdentifier id,
00082 const FrequencyType value);
00083
00086 FrequencyType GetFrequency(const InstanceIdentifier id) const ;
00087
00089 FrequencyType GetTotalFrequency()
00090 { return m_TotalFrequency ; }
00091
00092 protected:
00093 DenseFrequencyContainer() ;
00094 virtual ~DenseFrequencyContainer() {}
00095 void PrintSelf(std::ostream& os, Indent indent) const;
00096
00097 private:
00098 DenseFrequencyContainer(const Self&) ;
00099 void operator=(const Self&) ;
00100
00102 FrequencyContainerPointer m_FrequencyContainer ;
00103 FrequencyType m_TotalFrequency ;
00104 } ;
00105
00106 }
00107 }
00108
00109 #endif
00110
00111
00112