Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itkBloxCoreAtomPixel.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkBloxCoreAtomPixel.h,v $ 00005 Language: C++ 00006 Date: $Date: 2003/09/10 14:29:02 $ 00007 Version: $Revision: 1.21 $ 00008 00009 Copyright (c) Insight Software Consortium. All rights reserved. 00010 See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 #ifndef __itkBloxCoreAtomPixel_h 00018 #define __itkBloxCoreAtomPixel_h 00019 00020 #include "vnl/vnl_matrix_fixed.h" 00021 #include "vnl/vnl_vector_fixed.h" 00022 #include "vnl/algo/vnl_generalized_eigensystem.h" 00023 00024 #include "itkObject.h" 00025 #include "itkBloxCoreAtomItem.h" 00026 #include "itkBloxBoundaryPointItem.h" 00027 #include "itkPoint.h" 00028 #include "itkCovariantVector.h" 00029 #include "itkBloxPixel.h" 00030 00031 namespace itk 00032 { 00033 00041 template <unsigned int NDimensions> 00042 class ITK_EXPORT BloxCoreAtomPixel : public BloxPixel< BloxCoreAtomItem<NDimensions> > 00043 { 00044 public: 00045 00047 typedef BloxCoreAtomPixel Self; 00048 typedef BloxPixel< BloxCoreAtomItem<NDimensions> > Superclass; 00049 typedef SmartPointer<Self> Pointer; 00050 typedef SmartPointer<const Self> ConstPointer; 00051 00053 typedef BloxCoreAtomItem<NDimensions> CoreAtomItemType; 00054 00056 typedef BloxBoundaryPointItem<NDimensions> BPItemType; 00057 00059 typedef Point<double, NDimensions> PositionType; 00060 00062 typedef CovariantVector<double, NDimensions> GradientType; 00063 00065 typedef vnl_vector_fixed<double, NDimensions> VectorType; 00066 00068 typedef vnl_vector_fixed<double, NDimensions> EigenvalueType; 00069 00071 typedef vnl_matrix_fixed<double, NDimensions, NDimensions> EigenvectorType; 00072 00074 typedef vnl_matrix_fixed<double, NDimensions, NDimensions> MatrixType; 00075 00077 double CalcMeanCoreAtomDiameter(); 00078 00080 bool DoCoreAtomEigenanalysis(); 00081 00083 void DoVotedEigenanalysis(); 00084 00086 double GetMeanCoreAtomDiameter() {return m_MeanCoreAtomDiameter;} 00087 double GetMeanCoreAtomIntensity() {return m_MeanCoreAtomIntensity;} 00088 EigenvalueType GetEigenvalues() {return m_Eigenvalues;} 00089 EigenvalueType GetVotedEigenvalues() {return m_VotedEigenvalues;} 00090 EigenvectorType GetEigenvectors() {return m_Eigenvectors;} 00091 EigenvectorType GetVotedEigenvectors() {return m_VotedEigenvectors;} 00092 PositionType GetLocationSums() {return m_LocationSums;} 00093 double GetWeightSum() {return m_WeightSum;} 00094 00096 MatrixType* GetRawCMatrixPointer() {return &m_RawCMatrix;} 00097 00099 void CollectVote(MatrixType* pMatrix, double strength, double count); 00100 00102 void NormalizeVotedCMatrix(); 00103 00105 void CalcWeightedCoreAtomLocation(double weight_factor, Self * votingPixel); 00106 00108 void CalcMeanCoreAtomIntensity(); 00109 00111 PositionType GetVotedLocation(); 00112 00113 BloxCoreAtomPixel(); 00114 ~BloxCoreAtomPixel(); 00115 00116 private: 00117 00119 double m_MeanCoreAtomDiameter; 00120 00122 MatrixType m_RawCMatrix; 00123 00127 EigenvalueType m_Eigenvalues; 00128 00131 EigenvectorType m_Eigenvectors; 00132 00134 MatrixType m_VotedCMatrix; 00135 00137 EigenvalueType m_VotedEigenvalues; 00138 00140 EigenvectorType m_VotedEigenvectors; 00141 00144 double m_ConstituencySize; 00145 00147 PositionType m_LocationSums; 00148 00150 PositionType m_VotedLocation; 00151 00153 double m_WeightSum; 00154 00156 double m_MeanCoreAtomIntensity; 00157 }; 00158 00159 00160 } // end namespace itk 00161 00162 #ifndef ITK_MANUAL_INSTANTIATION 00163 #include "itkBloxCoreAtomPixel.txx" 00164 #endif 00165 00166 #endif

Generated at Sat Mar 31 02:14:54 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000