<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta name="robots" content="noindex"> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>ITK: itkHistogram.h Source File</title> <link href="DoxygenStyle.css" rel="stylesheet" type="text/css"> </head><body bgcolor="#ffffff"> <!-- Section customized for INSIGHT : Tue Jul 17 01:02:45 2001 --> <center> <a href="index.html" class="qindex">Main Page</a> <a href="modules.html" class="qindex">Groups</a> <a href="namespaces.html" class="qindex">Namespace List</a> <a href="hierarchy.html" class="qindex">Class Hierarchy</a> <a href="classes.html" class="qindex">Alphabetical List</a> <a href="annotated.html" class="qindex">Compound List</a> <a href="files.html" class="qindex">File List</a> <a href="namespacemembers.html" class="qindex">Namespace Members</a> <a href="functions.html" class="qindex">Compound Members</a> <a href="globals.html" class="qindex">File Members</a> <a href="pages.html" class="qindex">Concepts</a></center> <!-- Generated by Doxygen 1.5.9 --> <div class="navpath"><a class="el" href="dir_02e23d841c198393a6e961e9a0678fff.html">Code</a> » <a class="el" href="dir_2c33022d19e8077162952ea9ed57656d.html">Numerics</a> » <a class="el" href="dir_e82fe55e9fab4124d6625d716e091a5f.html">Statistics</a> </div> <div class="contents"> <h1>itkHistogram.h</h1><a href="itkHistogram_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*=========================================================================</span> <a name="l00002"></a>00002 <span class="comment"></span> <a name="l00003"></a>00003 <span class="comment"> Program: Insight Segmentation & Registration Toolkit</span> <a name="l00004"></a>00004 <span class="comment"> Module: $RCSfile: itkHistogram.h,v $</span> <a name="l00005"></a>00005 <span class="comment"> Language: C++</span> <a name="l00006"></a>00006 <span class="comment"> Date: $Date: 2005-09-30 17:24:45 $</span> <a name="l00007"></a>00007 <span class="comment"> Version: $Revision: 1.49 $</span> <a name="l00008"></a>00008 <span class="comment"></span> <a name="l00009"></a>00009 <span class="comment"> Copyright (c) Insight Software Consortium. All rights reserved.</span> <a name="l00010"></a>00010 <span class="comment"> See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.</span> <a name="l00011"></a>00011 <span class="comment"></span> <a name="l00012"></a>00012 <span class="comment"> This software is distributed WITHOUT ANY WARRANTY; without even </span> <a name="l00013"></a>00013 <span class="comment"> the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR </span> <a name="l00014"></a>00014 <span class="comment"> PURPOSE. See the above copyright notices for more information.</span> <a name="l00015"></a>00015 <span class="comment"></span> <a name="l00016"></a>00016 <span class="comment">=========================================================================*/</span> <a name="l00017"></a>00017 <span class="preprocessor">#ifndef __itkHistogram_h</span> <a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define __itkHistogram_h</span> <a name="l00019"></a>00019 <span class="preprocessor"></span> <a name="l00020"></a>00020 <span class="preprocessor">#include <vector></span> <a name="l00021"></a>00021 <a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="itkIndex_8h.html">itkIndex.h</a>"</span> <a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="itkSize_8h.html">itkSize.h</a>"</span> <a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="itkFixedArray_8h.html">itkFixedArray.h</a>"</span> <a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="itkSample_8h.html">itkSample.h</a>"</span> <a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="itkDenseFrequencyContainer_8h.html">itkDenseFrequencyContainer.h</a>"</span> <a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="itkSparseFrequencyContainer_8h.html">itkSparseFrequencyContainer.h</a>"</span> <a name="l00028"></a>00028 <a name="l00029"></a>00029 <span class="keyword">namespace </span>itk{ <a name="l00030"></a>00030 <span class="keyword">namespace </span>Statistics{ <a name="l00031"></a>00031 <a name="l00038"></a>00038 <span class="keyword">template</span> <<span class="keyword">typename</span> THistogram> <a name="l00039"></a><a class="code" href="structitk_1_1Statistics_1_1GetHistogramDimension.html">00039</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Statistics_1_1GetHistogramDimension.html">GetHistogramDimension</a> <a name="l00040"></a>00040 { <a name="l00041"></a>00041 <a class="code" href="structitk_1_1Statistics_1_1GetHistogramDimension.html#44882336a8543d4d269adc9217522e77">itkStaticConstMacro</a>(HistogramDimension, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>, THistogram::MeasurementVectorSize); <a name="l00042"></a>00042 }; <a name="l00043"></a>00043 <a name="l00080"></a>00080 <span class="keyword">template</span> < <span class="keyword">class </span>TMeasurement = float, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> VMeasurementVectorSize = 1, <a name="l00081"></a>00081 <span class="keyword">class </span>TFrequencyContainer = <a class="code" href="classitk_1_1Statistics_1_1DenseFrequencyContainer.html" title="his class is a container for frequencies of bins in an histogram.">DenseFrequencyContainer</a> > <a name="l00082"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html">00082</a> <span class="keyword">class </span><a class="code" href="itkWin32Header_8h.html#7d4384322557205d75f0719c012dded6">ITK_EXPORT</a> <a class="code" href="classitk_1_1Statistics_1_1Histogram.html" title="This class stores measurement vectors in the context of n-dimensional histogram.">Histogram</a> <a name="l00083"></a>00083 : <span class="keyword">public</span> <a class="code" href="classitk_1_1Statistics_1_1Sample.html" title="A collection of measurements for statistical analysis.">Sample</a> < FixedArray< TMeasurement, VMeasurementVectorSize > > <a name="l00084"></a>00084 { <a name="l00085"></a>00085 <span class="keyword">public</span>: <a name="l00086"></a>00086 <a name="l00087"></a>00087 <a name="l00089"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#a5e9a9dfc48cede5d095b1a29f915bd6">00089</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Statistics_1_1Histogram.html" title="This class stores measurement vectors in the context of n-dimensional histogram.">Histogram</a> <a class="code" href="classitk_1_1LightObject.html" title="Light weight base class for most itk classes.">Self</a> ; <a name="l00090"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#3df2ee930dcd3457efdc84127c4117f9">00090</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Statistics_1_1Sample.html" title="A collection of measurements for statistical analysis.">Sample< FixedArray< TMeasurement, VMeasurementVectorSize ></a> > <a class="code" href="classitk_1_1LightObject.html" title="Light weight base class for most itk classes.">Superclass</a> ; <a name="l00091"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#2a8af71e092569c7f6ca84dccf77d021">00091</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1SmartPointer.html">SmartPointer<Self></a> <a class="code" href="classitk_1_1SmartPointer.html">Pointer</a> ; <a name="l00092"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#d44d48f3539bfdbb9f95637f662cfd3e">00092</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1SmartPointer.html">SmartPointer<const Self></a> <a class="code" href="classitk_1_1SmartPointer.html">ConstPointer</a> ; <a name="l00093"></a>00093 <a name="l00095"></a>00095 <a class="code" href="itkMacro_8h.html#574c1f86661d409dd32c742307a0e96a">itkTypeMacro</a>(<a class="code" href="classitk_1_1Statistics_1_1Histogram.html" title="This class stores measurement vectors in the context of n-dimensional histogram.">Histogram</a>, <a class="code" href="classitk_1_1Statistics_1_1Sample.html" title="A collection of measurements for statistical analysis.">Sample</a>) ; <a name="l00096"></a>00096 <a name="l00098"></a>00098 <a class="code" href="itkMacro_8h.html#0fdc15685afa271857c57e7cd482f30c">itkNewMacro</a>(<a class="code" href="classitk_1_1LightObject.html" title="Light weight base class for most itk classes.">Self</a>) ; <a name="l00099"></a>00099 <a name="l00101"></a>00101 <a class="code" href="itkMacro_8h.html#1905cf6b2e88235996fa7ff73b2fb0eb">itkStaticConstMacro</a>(MeasurementVectorSize, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>, <a name="l00102"></a>00102 VMeasurementVectorSize); <a name="l00103"></a>00103 <a name="l00104"></a>00104 <a name="l00106"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#3fc5cc2f28b180e6c138dae3fbe9f379">00106</a> <span class="keyword">typedef</span> TMeasurement MeasurementType ; <a name="l00107"></a>00107 <a name="l00109"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#0434244f7762363e2e7afa3c42c842fc">00109</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> Superclass::MeasurementVectorType MeasurementVectorType ; <a name="l00110"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#fa9294fc234d5e559c2ffe160eb90fd4">00110</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> Superclass::InstanceIdentifier InstanceIdentifier ; <a name="l00111"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#59c20521f1bf17244bbd94bf116b9cb6">00111</a> <span class="keyword">typedef</span> MeasurementVectorType ValueType ; <a name="l00112"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#8386d2cadb032c81eb0ed95018f4bfaf">00112</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> Superclass::MeasurementVectorSizeType MeasurementVectorSizeType; <a name="l00113"></a>00113 <a name="l00115"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#cc62766c1575368e0d0be0cdfcb0458b">00115</a> <span class="keyword">typedef</span> TFrequencyContainer FrequencyContainerType ; <a name="l00116"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#800dd5a2d5e231fb7216e98113db5ca9">00116</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="itkFEMMacro_8h.html#539cce1a3282ba59952dedcbf9cdb23f">FrequencyContainerType::Pointer</a> FrequencyContainerPointer ; <a name="l00117"></a>00117 <a name="l00119"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#1134db5db023a934d45aaa4a5b605e76">00119</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> FrequencyContainerType::FrequencyType FrequencyType ; <a name="l00120"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#e77fff38b2cf291d8494cdc663f79ef1">00120</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> FrequencyContainerType::TotalFrequencyType TotalFrequencyType ; <a name="l00121"></a>00121 <a name="l00123"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#d110395095b051b3d409753db1d8315d">00123</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Index.html">itk::Index< VMeasurementVectorSize ></a> <a class="code" href="classitk_1_1Index.html">IndexType</a>; <a name="l00124"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#b49b77415b807a982e504eb9a314ed7d">00124</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> IndexType::IndexValueType IndexValueType; <a name="l00125"></a>00125 <a name="l00127"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#bce24e7e6c3a4d5b45f1b897b9d94228">00127</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Size.html">itk::Size< VMeasurementVectorSize ></a> <a class="code" href="classitk_1_1Size.html">SizeType</a> ; <a name="l00128"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#2bc5b93c14089d2fa766c27ef741b57b">00128</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> SizeType::SizeValueType SizeValueType ; <a name="l00129"></a>00129 <a name="l00131"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#9a5bf0116cea74a95f09d7037a1bfab2">00131</a> <span class="keyword">typedef</span> std::vector< MeasurementType > BinMinVectorType ; <a name="l00132"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#c1b720d4606d96d031827120850f75e5">00132</a> <span class="keyword">typedef</span> std::vector< MeasurementType > BinMaxVectorType ; <a name="l00133"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#31a2220be182963e8c5f24dc1e7781e7">00133</a> <span class="keyword">typedef</span> std::vector< BinMinVectorType > BinMinContainerType ; <a name="l00134"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#3f5a2bfeef58e4c85601936ded0dfb8e">00134</a> <span class="keyword">typedef</span> std::vector< BinMaxVectorType > BinMaxContainerType ; <a name="l00135"></a>00135 <a name="l00139"></a>00139 <span class="keywordtype">void</span> Initialize(<span class="keyword">const</span> <a class="code" href="classitk_1_1Size.html">SizeType</a> &size) ; <a name="l00140"></a>00140 <a name="l00141"></a>00141 <a name="l00145"></a>00145 <span class="keywordtype">void</span> Initialize(<span class="keyword">const</span> <a class="code" href="classitk_1_1Size.html">SizeType</a> &size, MeasurementVectorType& lowerBound, <a name="l00146"></a>00146 MeasurementVectorType& upperBound) ; <a name="l00147"></a>00147 <a name="l00149"></a>00149 <span class="keywordtype">void</span> SetToZero() ; <a name="l00150"></a>00150 <a name="l00154"></a>00154 <span class="keyword">const</span> <a class="code" href="classitk_1_1Index.html">IndexType</a> & GetIndex(<span class="keyword">const</span> MeasurementVectorType& measurement) <span class="keyword">const</span>; <a name="l00155"></a>00155 <a name="l00159"></a>00159 <span class="keywordtype">bool</span> GetIndex(<span class="keyword">const</span> MeasurementVectorType & measurement, <a name="l00160"></a>00160 <a class="code" href="classitk_1_1Index.html">IndexType</a> & index ) <span class="keyword">const</span>; <a name="l00161"></a>00161 <a name="l00165"></a>00165 <span class="keyword">const</span> <a class="code" href="classitk_1_1Index.html">IndexType</a> & GetIndex(<span class="keyword">const</span> InstanceIdentifier &<span class="keywordtype">id</span>) <span class="keyword">const</span>; <a name="l00166"></a>00166 <a name="l00169"></a>00169 <a class="code" href="itkMacro_8h.html#1600305bb01e39e87c472d8bf29bd1cf">itkGetMacro</a>(ClipBinsAtEnds, <span class="keywordtype">bool</span>); <a name="l00170"></a>00170 <a name="l00173"></a>00173 <a class="code" href="itkMacro_8h.html#7ebdd33cc5e7d74720ced9099c034faa">itkSetMacro</a>(ClipBinsAtEnds, <span class="keywordtype">bool</span>); <a name="l00174"></a>00174 <a name="l00177"></a>00177 <span class="keywordtype">bool</span> IsIndexOutOfBounds(<span class="keyword">const</span> <a class="code" href="classitk_1_1Index.html">IndexType</a> &index) <span class="keyword">const</span>; <a name="l00178"></a>00178 <a name="l00182"></a>00182 InstanceIdentifier GetInstanceIdentifier(<span class="keyword">const</span> <a class="code" href="classitk_1_1Index.html">IndexType</a> &index) <span class="keyword">const</span> ; <a name="l00183"></a>00183 <a name="l00185"></a>00185 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1Size.html" title="Represent the size (bounds) of a n-dimensional image.">Size</a>() <span class="keyword">const</span> ; <a name="l00186"></a>00186 <a name="l00188"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#f48deb888eca288eb8436f2eb984339f">00188</a> <a class="code" href="classitk_1_1Size.html">SizeType</a> GetSize()<span class="keyword"> const</span> <a name="l00189"></a>00189 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_Size ; } <a name="l00190"></a>00190 <a name="l00192"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#88e0f6870db5c63f9549d0f10c5c506a">00192</a> SizeValueType GetSize(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dimension)<span class="keyword"> const</span> <a name="l00193"></a>00193 <span class="keyword"> </span>{ <a name="l00194"></a>00194 <span class="keywordflow">return</span> m_Size[dimension] ; <a name="l00195"></a>00195 } <a name="l00196"></a>00196 <a name="l00198"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#9d85827f39f2be3145701cbdf1ac3a2e">00198</a> <span class="keyword">const</span> MeasurementType& GetBinMin(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dimension, <a name="l00199"></a>00199 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> nbin)<span class="keyword"> const</span> <a name="l00200"></a>00200 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_Min[dimension][nbin] ; } <a name="l00201"></a>00201 <a name="l00203"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#5cfde244e466e825e800484c97ceaa86">00203</a> <span class="keyword">const</span> MeasurementType& GetBinMax(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dimension, <a name="l00204"></a>00204 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> nbin)<span class="keyword"> const</span> <a name="l00205"></a>00205 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_Max[dimension][nbin] ; } <a name="l00206"></a>00206 <a name="l00208"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#0db0d34065a4e90f8acb2940a666fff2">00208</a> <span class="keywordtype">void</span> SetBinMin(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dimension, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> nbin, <a name="l00209"></a>00209 <span class="keyword">const</span> MeasurementType min) <a name="l00210"></a>00210 { m_Min[dimension][nbin] = min ; } <a name="l00211"></a>00211 <a name="l00213"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#90b207510498cdfe2fcde3df56b23a9d">00213</a> <span class="keywordtype">void</span> SetBinMax(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dimension, <a name="l00214"></a>00214 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> nbin, <span class="keyword">const</span> MeasurementType max) <a name="l00215"></a>00215 { m_Max[dimension][nbin] = max ; } <a name="l00216"></a>00216 <a name="l00219"></a>00219 <span class="keyword">const</span> MeasurementType& GetBinMinFromValue(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dimension, <a name="l00220"></a>00220 <span class="keyword">const</span> <span class="keywordtype">float</span> value ) <span class="keyword">const</span> ; <a name="l00221"></a>00221 <a name="l00224"></a>00224 <span class="keyword">const</span> MeasurementType& GetBinMaxFromValue(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dimension, <a name="l00225"></a>00225 <span class="keyword">const</span> <span class="keywordtype">float</span> value ) <span class="keyword">const</span> ; <a name="l00226"></a>00226 <a name="l00228"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#e37b08b597886dc166836ca1ed9f0722">00228</a> <span class="keyword">const</span> BinMinVectorType& GetDimensionMins(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dimension)<span class="keyword"> const</span> <a name="l00229"></a>00229 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_Min[dimension] ; } <a name="l00230"></a>00230 <a name="l00232"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#6a24bcad747dd5c37e6a1ae62c96c54b">00232</a> <span class="keyword">const</span> BinMaxVectorType& GetDimensionMaxs(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dimension)<span class="keyword"> const</span> <a name="l00233"></a>00233 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_Max[dimension] ; } <a name="l00234"></a>00234 <a name="l00236"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#3bb66095e65e86fb930ec3e177c56943">00236</a> <span class="keyword">const</span> BinMinContainerType& GetMins()<span class="keyword"> const</span> <a name="l00237"></a>00237 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_Min ; } <a name="l00238"></a>00238 <a name="l00240"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#5a6e3dc48be5c481fe554633636a828d">00240</a> <span class="keyword">const</span> BinMaxContainerType& GetMaxs()<span class="keyword"> const</span> <a name="l00241"></a>00241 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_Max ; } <a name="l00242"></a>00242 <a name="l00244"></a>00244 <span class="comment">// MeasurementVectorType& GetHistogramMinFromValue(const MeasurementVectorType </span> <a name="l00245"></a>00245 <span class="comment">// &measurement) ; </span> <a name="l00246"></a>00246 <span class="comment">// </span> <a name="l00247"></a>00247 <a name="l00249"></a>00249 <span class="comment">// MeasurementVectorType& GetHistogramMaxFromValue(const MeasurementVectorType </span> <a name="l00250"></a>00250 <span class="comment">// &measurement) ; </span> <a name="l00251"></a>00251 <a name="l00253"></a>00253 MeasurementVectorType& GetHistogramMinFromIndex(<span class="keyword">const</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#be32dc19e71d40322ad9828b9ab40853">IndexType</a> &index) ; <a name="l00254"></a>00254 <a name="l00256"></a>00256 MeasurementVectorType& GetHistogramMaxFromIndex(<span class="keyword">const</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#be32dc19e71d40322ad9828b9ab40853">IndexType</a> &index) ; <a name="l00257"></a>00257 <a name="l00259"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#9fdab30e11b640e1a4009fdfa2f91ddf">00259</a> FrequencyType GetFrequency(<span class="keyword">const</span> InstanceIdentifier &<span class="keywordtype">id</span>)<span class="keyword"> const</span> <a name="l00260"></a>00260 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_FrequencyContainer->GetFrequency(<span class="keywordtype">id</span>) ; } <a name="l00261"></a>00261 <a name="l00263"></a>00263 FrequencyType GetFrequency(<span class="keyword">const</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#be32dc19e71d40322ad9828b9ab40853">IndexType</a> &index) <span class="keyword">const</span> ; <a name="l00264"></a>00264 <a name="l00266"></a>00266 <span class="keywordtype">void</span> SetFrequency(<span class="keyword">const</span> FrequencyType value) ; <a name="l00267"></a>00267 <a name="l00270"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#c06ebffb362b7bd4a9698c1267c3fe40">00270</a> <span class="keywordtype">bool</span> SetFrequency(<span class="keyword">const</span> InstanceIdentifier &<span class="keywordtype">id</span>, <span class="keyword">const</span> FrequencyType value) <a name="l00271"></a>00271 { <span class="keywordflow">return</span> m_FrequencyContainer->SetFrequency(<span class="keywordtype">id</span>, value) ; } <a name="l00272"></a>00272 <a name="l00275"></a>00275 <span class="keywordtype">bool</span> SetFrequency(<span class="keyword">const</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#be32dc19e71d40322ad9828b9ab40853">IndexType</a> &index, <a name="l00276"></a>00276 <span class="keyword">const</span> FrequencyType value) ; <a name="l00277"></a>00277 <a name="l00280"></a>00280 <span class="keywordtype">bool</span> SetFrequency(<span class="keyword">const</span> MeasurementVectorType &measurement, <a name="l00281"></a>00281 <span class="keyword">const</span> FrequencyType value) ; <a name="l00282"></a>00282 <a name="l00283"></a>00283 <a name="l00287"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#aa3acd15da26c35aad4c0328b46071e0">00287</a> <span class="keywordtype">bool</span> IncreaseFrequency(<span class="keyword">const</span> InstanceIdentifier &<span class="keywordtype">id</span>, <a name="l00288"></a>00288 <span class="keyword">const</span> FrequencyType value) <a name="l00289"></a>00289 { <span class="keywordflow">return</span> m_FrequencyContainer->IncreaseFrequency(<span class="keywordtype">id</span>, value) ; } <a name="l00290"></a>00290 <a name="l00294"></a>00294 <span class="keywordtype">bool</span> IncreaseFrequency(<span class="keyword">const</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#be32dc19e71d40322ad9828b9ab40853">IndexType</a> &index, <a name="l00295"></a>00295 <span class="keyword">const</span> FrequencyType value) ; <a name="l00296"></a>00296 <a name="l00300"></a>00300 <span class="keywordtype">bool</span> IncreaseFrequency(<span class="keyword">const</span> MeasurementVectorType &measurement, <a name="l00301"></a>00301 <span class="keyword">const</span> FrequencyType value) ; <a name="l00302"></a>00302 <a name="l00306"></a>00306 <span class="keyword">const</span> MeasurementVectorType & GetMeasurementVector(<span class="keyword">const</span> InstanceIdentifier &<span class="keywordtype">id</span>) <span class="keyword">const</span>; <a name="l00307"></a>00307 <a name="l00309"></a>00309 <span class="keyword">const</span> MeasurementVectorType & GetMeasurementVector(<span class="keyword">const</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#be32dc19e71d40322ad9828b9ab40853">IndexType</a> &index) <span class="keyword">const</span>; <a name="l00310"></a>00310 <a name="l00313"></a>00313 MeasurementType GetMeasurement(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> n, <a name="l00314"></a>00314 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dimension) <span class="keyword">const</span> ; <a name="l00315"></a>00315 <a name="l00317"></a>00317 TotalFrequencyType GetTotalFrequency() <span class="keyword">const</span> ; <a name="l00318"></a>00318 <a name="l00320"></a>00320 FrequencyType GetFrequency(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> n, <a name="l00321"></a>00321 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dimension) <span class="keyword">const</span> ; <a name="l00322"></a>00322 <a name="l00338"></a>00338 <span class="keywordtype">double</span> Quantile(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dimension, <span class="keyword">const</span> <span class="keywordtype">double</span> &p) <span class="keyword">const</span>; <a name="l00340"></a>00340 <a name="l00341"></a>00341 <span class="keyword">protected</span>: <a name="l00342"></a>00342 <span class="keywordtype">void</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#920ae03048a5ad715d803ca2e92b52de">PrintSelf</a>(std::ostream& os, <a class="code" href="classitk_1_1Indent.html" title="Control indentation during Print() invocation.">Indent</a> indent) <span class="keyword">const</span>; <a name="l00343"></a>00343 <a name="l00344"></a>00344 <span class="keyword">public</span>: <a name="l00347"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html">00347</a> <span class="keyword">class </span><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html">Iterator</a> <a name="l00348"></a>00348 { <a name="l00349"></a>00349 <span class="keyword">public</span>: <a name="l00350"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html#5f22cc3c301270c3476f2943f305bf6f">00350</a> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html#5f22cc3c301270c3476f2943f305bf6f">Iterator</a>(){}; <a name="l00351"></a>00351 <a name="l00352"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html#33ef556d69b0d4d831eeb1e02d0d8823">00352</a> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html">Iterator</a>(<a class="code" href="classitk_1_1LightObject.html" title="Light weight base class for most itk classes.">Self</a> * histogram) <a name="l00353"></a>00353 { <a name="l00354"></a>00354 m_Id = 0 ; <a name="l00355"></a>00355 m_Histogram = histogram; <a name="l00356"></a>00356 } <a name="l00357"></a>00357 <a name="l00358"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html#aa69173d946a466fa1633ac1702c58e3">00358</a> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html">Iterator</a>(InstanceIdentifier <span class="keywordtype">id</span>, <a class="code" href="classitk_1_1LightObject.html" title="Light weight base class for most itk classes.">Self</a> * histogram) <a name="l00359"></a>00359 : m_Id(id), m_Histogram(histogram) <a name="l00360"></a>00360 {} <a name="l00361"></a>00361 <a name="l00362"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html#9d607422af0b943a6029a0ba3e522cfb">00362</a> FrequencyType GetFrequency()<span class="keyword"> const</span> <a name="l00363"></a>00363 <span class="keyword"> </span>{ <a name="l00364"></a>00364 <span class="keywordflow">return</span> m_Histogram->GetFrequency(m_Id) ; <a name="l00365"></a>00365 } <a name="l00366"></a>00366 <a name="l00367"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html#1adfde9e621455e8a57e36ff5178d979">00367</a> <span class="keywordtype">bool</span> SetFrequency(<span class="keyword">const</span> FrequencyType value) <a name="l00368"></a>00368 { <a name="l00369"></a>00369 <span class="keywordflow">return</span> m_Histogram->SetFrequency(m_Id, value); <a name="l00370"></a>00370 } <a name="l00371"></a>00371 <a name="l00372"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html#23314cc4e43d9de9de511e92e8099bb0">00372</a> InstanceIdentifier GetInstanceIdentifier()<span class="keyword"> const</span> <a name="l00373"></a>00373 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_Id ; } <a name="l00374"></a>00374 <a name="l00375"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html#a37253bb1abfd45bc970f4ff7d00ecfb">00375</a> <span class="keyword">const</span> MeasurementVectorType & GetMeasurementVector()<span class="keyword"> const</span> <a name="l00376"></a>00376 <span class="keyword"> </span>{ <a name="l00377"></a>00377 <span class="keywordflow">return</span> m_Histogram->GetMeasurementVector(m_Id) ; <a name="l00378"></a>00378 } <a name="l00379"></a>00379 <a name="l00380"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html#63df85f96c962272f494c0e782b763b2">00380</a> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html">Iterator</a>& operator++() <a name="l00381"></a>00381 { <a name="l00382"></a>00382 ++m_Id; <a name="l00383"></a>00383 <span class="keywordflow">return</span> *<span class="keyword">this</span>; <a name="l00384"></a>00384 } <a name="l00385"></a>00385 <a name="l00386"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html#0938f58608a6d6ebbefd1b3cab01d4ad">00386</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceitk_1_1ImageToImageFilterDetail.html#7bf30438b5d3bdc0eddbecd9b17baa3b">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html">Iterator</a>& it) <a name="l00387"></a>00387 { <span class="keywordflow">return</span> (m_Id != it.m_Id); } <a name="l00388"></a>00388 <a name="l00389"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html#613c75decb0503ac5f59d1ade5e86c7a">00389</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceitk.html#e1c1b02c301187419478f5126c789a01">operator==</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html">Iterator</a>& it) <a name="l00390"></a>00390 { <span class="keywordflow">return</span> (m_Id == it.m_Id); } <a name="l00391"></a>00391 <a name="l00392"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html#8d2a917b04e3115238cb03f0cd4ffc42">00392</a> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html">Iterator</a>& operator=(<span class="keyword">const</span> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html">Iterator</a>& it) <a name="l00393"></a>00393 { <a name="l00394"></a>00394 m_Id = it.m_Id; <a name="l00395"></a>00395 m_Histogram = it.m_Histogram ; <a name="l00396"></a>00396 <span class="keywordflow">return</span> *this ; <a name="l00397"></a>00397 } <a name="l00398"></a>00398 <a name="l00399"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html#e1dfafdb09d92df9249e5835cb1c77d0">00399</a> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html">Iterator</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html">Iterator</a>& it) <a name="l00400"></a>00400 { <a name="l00401"></a>00401 m_Id = it.m_Id; <a name="l00402"></a>00402 m_Histogram = it.m_Histogram ; <a name="l00403"></a>00403 } <a name="l00404"></a>00404 <a name="l00405"></a>00405 <span class="keyword">private</span>: <a name="l00406"></a>00406 <span class="comment">// Iterator pointing DenseFrequencyContainer</span> <a name="l00407"></a>00407 InstanceIdentifier m_Id; <a name="l00408"></a>00408 <a name="l00409"></a>00409 <span class="comment">// Pointer of DenseFrequencyContainer</span> <a name="l00410"></a>00410 <a class="code" href="classitk_1_1LightObject.html" title="Light weight base class for most itk classes.">Self</a>* m_Histogram ; <a name="l00411"></a>00411 } ; <span class="comment">// end of iterator class</span> <a name="l00412"></a>00412 <a name="l00413"></a>00413 <span class="comment">// Const Iterator</span> <a name="l00414"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html">00414</a> <span class="keyword">class </span><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html">ConstIterator</a> <a name="l00415"></a>00415 { <a name="l00416"></a>00416 <span class="keyword">public</span>: <a name="l00417"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html#245bdd55ec16dc0ce2710ce8dff9362a">00417</a> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html#245bdd55ec16dc0ce2710ce8dff9362a">ConstIterator</a>(){}; <a name="l00418"></a>00418 <a name="l00419"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html#56eec26a97d8bc0b992d9eb96876a293">00419</a> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html">ConstIterator</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1LightObject.html" title="Light weight base class for most itk classes.">Self</a> * histogram) <a name="l00420"></a>00420 { <a name="l00421"></a>00421 m_Id = 0 ; <a name="l00422"></a>00422 m_Histogram = histogram; <a name="l00423"></a>00423 } <a name="l00424"></a>00424 <a name="l00425"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html#58e616887e19f7ab0ba4f481c09348d5">00425</a> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html">ConstIterator</a>(InstanceIdentifier <span class="keywordtype">id</span>, <span class="keyword">const</span> <a class="code" href="classitk_1_1LightObject.html" title="Light weight base class for most itk classes.">Self</a> * histogram) <a name="l00426"></a>00426 : m_Id(id), m_Histogram(histogram) <a name="l00427"></a>00427 {} <a name="l00428"></a>00428 <a name="l00429"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html#08ea3c2c1f51a72f8356585af5c1ab9e">00429</a> FrequencyType GetFrequency()<span class="keyword"> const</span> <a name="l00430"></a>00430 <span class="keyword"> </span>{ <a name="l00431"></a>00431 <span class="keywordflow">return</span> m_Histogram->GetFrequency(m_Id) ; <a name="l00432"></a>00432 } <a name="l00433"></a>00433 <a name="l00434"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html#cb3f14eebee5008219871f6c07d64ea6">00434</a> InstanceIdentifier GetInstanceIdentifier()<span class="keyword"> const</span> <a name="l00435"></a>00435 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_Id ; } <a name="l00436"></a>00436 <a name="l00437"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html#a7424fc20cea84279deba7487b831a5d">00437</a> <span class="keyword">const</span> MeasurementVectorType & GetMeasurementVector()<span class="keyword"> const</span> <a name="l00438"></a>00438 <span class="keyword"> </span>{ <a name="l00439"></a>00439 <span class="keywordflow">return</span> m_Histogram->GetMeasurementVector(m_Id) ; <a name="l00440"></a>00440 } <a name="l00441"></a>00441 <a name="l00442"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html#9dfc817259d77cd6155e24acd1a4b1d8">00442</a> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html">ConstIterator</a>& operator++() <a name="l00443"></a>00443 { <a name="l00444"></a>00444 ++m_Id; <a name="l00445"></a>00445 <span class="keywordflow">return</span> *<span class="keyword">this</span>; <a name="l00446"></a>00446 } <a name="l00447"></a>00447 <a name="l00448"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html#b2886dc891ef41285a6840ffbf930701">00448</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceitk_1_1ImageToImageFilterDetail.html#7bf30438b5d3bdc0eddbecd9b17baa3b">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html">ConstIterator</a>& it) <a name="l00449"></a>00449 { <span class="keywordflow">return</span> (m_Id != it.m_Id); } <a name="l00450"></a>00450 <a name="l00451"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html#7466e4b7c4b3ff7b69e1a455d6c16c89">00451</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceitk.html#e1c1b02c301187419478f5126c789a01">operator==</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html">ConstIterator</a>& it) <a name="l00452"></a>00452 { <span class="keywordflow">return</span> (m_Id == it.m_Id); } <a name="l00453"></a>00453 <a name="l00454"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html#166426ab55eaa5bb7da4aee01ae20994">00454</a> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html">ConstIterator</a>& operator=(<span class="keyword">const</span> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html">ConstIterator</a>& it) <a name="l00455"></a>00455 { <a name="l00456"></a>00456 m_Id = it.m_Id; <a name="l00457"></a>00457 m_Histogram = it.m_Histogram ; <a name="l00458"></a>00458 <span class="keywordflow">return</span> *this ; <a name="l00459"></a>00459 } <a name="l00460"></a>00460 <a name="l00461"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html#998e874dda6c04b626f582bd841f61db">00461</a> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html">ConstIterator</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html">ConstIterator</a> & it) <a name="l00462"></a>00462 { <a name="l00463"></a>00463 m_Id = it.m_Id; <a name="l00464"></a>00464 m_Histogram = it.m_Histogram ; <a name="l00465"></a>00465 } <a name="l00466"></a>00466 <a name="l00467"></a>00467 <span class="keyword">private</span>: <a name="l00468"></a>00468 <span class="comment">// ConstIterator pointing DenseFrequencyContainer</span> <a name="l00469"></a>00469 InstanceIdentifier m_Id; <a name="l00470"></a>00470 <a name="l00471"></a>00471 <span class="comment">// Pointer of DenseFrequencyContainer</span> <a name="l00472"></a>00472 <span class="keyword">const</span> <a class="code" href="classitk_1_1LightObject.html" title="Light weight base class for most itk classes.">Self</a>* m_Histogram ; <a name="l00473"></a>00473 } ; <span class="comment">// end of iterator class</span> <a name="l00474"></a>00474 <a name="l00475"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#3305b1e299392f42365086980b0a18ea">00475</a> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html">Iterator</a> Begin() <a name="l00476"></a>00476 { <a name="l00477"></a>00477 <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html">Iterator</a> iter(0, <span class="keyword">this</span>) ; <a name="l00478"></a>00478 <span class="keywordflow">return</span> iter ; <a name="l00479"></a>00479 } <a name="l00480"></a>00480 <a name="l00481"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#d8c0d95ce91ffbfbbbf9bfa74b4f48f8">00481</a> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html">Iterator</a> End() <a name="l00482"></a>00482 { <a name="l00483"></a>00483 <span class="keywordflow">return</span> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1Iterator.html">Iterator</a>(m_OffsetTable[VMeasurementVectorSize], <span class="keyword">this</span>) ; <a name="l00484"></a>00484 } <a name="l00485"></a>00485 <a name="l00486"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#a9cca749845302e410572fde8fcb3452">00486</a> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html">ConstIterator</a> Begin()<span class="keyword"> const</span> <a name="l00487"></a>00487 <span class="keyword"> </span>{ <a name="l00488"></a>00488 <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html">ConstIterator</a> iter(0, <span class="keyword">this</span>) ; <a name="l00489"></a>00489 <span class="keywordflow">return</span> iter ; <a name="l00490"></a>00490 } <a name="l00491"></a>00491 <a name="l00492"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#e195f2fbc680cce10ba516927f7c760a">00492</a> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html">ConstIterator</a> End()<span class="keyword"> const</span> <a name="l00493"></a>00493 <span class="keyword"> </span>{ <a name="l00494"></a>00494 <span class="keywordflow">return</span> <a class="code" href="classitk_1_1Statistics_1_1Histogram_1_1ConstIterator.html">ConstIterator</a>(m_OffsetTable[VMeasurementVectorSize], <span class="keyword">this</span>) ; <a name="l00495"></a>00495 } <a name="l00496"></a>00496 <a name="l00497"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#761d46f952fb8884e1e342ed135c7db0">00497</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetMeasurementVectorSize( <span class="keyword">const</span> MeasurementVectorSizeType s ) <a name="l00498"></a>00498 { <a name="l00499"></a>00499 <span class="keywordflow">if</span>( s!= VMeasurementVectorSize ) <a name="l00500"></a>00500 { <a name="l00501"></a>00501 <a class="code" href="itkMacro_8h.html#c51de1a715471e7fd0f2e481a70fa1f8">itkExceptionMacro</a>( << <span class="stringliteral">"This Histogram class is meant to be used only for "</span> <a name="l00502"></a>00502 << <span class="stringliteral">"fixed length vectors of length "</span> << VMeasurementVectorSize << <a name="l00503"></a>00503 <span class="stringliteral">". Cannot set this to "</span> << s); <a name="l00504"></a>00504 } <a name="l00505"></a>00505 } <a name="l00506"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#c9a671a7e56920e5820cf70d4f63e2da">00506</a> MeasurementVectorSizeType GetMeasurementVectorSize()<span class="keyword"> const</span> <a name="l00507"></a>00507 <span class="keyword"> </span>{ <a name="l00508"></a>00508 <span class="keywordflow">return</span> VMeasurementVectorSize; <a name="l00509"></a>00509 } <a name="l00510"></a>00510 <a name="l00511"></a>00511 <a name="l00512"></a>00512 <span class="keyword">protected</span>: <a name="l00513"></a>00513 <a class="code" href="classitk_1_1Statistics_1_1Histogram.html" title="This class stores measurement vectors in the context of n-dimensional histogram.">Histogram</a>() ; <a name="l00514"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#a93ef677e7f5f8278001599167fad8da">00514</a> <span class="keyword">virtual</span> <a class="code" href="classitk_1_1Statistics_1_1Histogram.html#a93ef677e7f5f8278001599167fad8da">~Histogram</a>() {} <a name="l00515"></a>00515 <a name="l00516"></a>00516 <span class="comment">// The number of bins for each dimension</span> <a name="l00517"></a><a class="code" href="classitk_1_1Statistics_1_1Histogram.html#a9373b8ef007dc9a35b37a3b8eef4c49">00517</a> <a class="code" href="classitk_1_1Size.html">SizeType</a> m_Size ; <a name="l00518"></a>00518 <a name="l00519"></a>00519 <span class="keyword">private</span>: <a name="l00520"></a>00520 <a class="code" href="classitk_1_1Statistics_1_1Histogram.html" title="This class stores measurement vectors in the context of n-dimensional histogram.">Histogram</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1LightObject.html" title="Light weight base class for most itk classes.">Self</a>&); <span class="comment">//purposely not implemented</span> <a name="l00521"></a>00521 <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classitk_1_1LightObject.html" title="Light weight base class for most itk classes.">Self</a>&); <span class="comment">//purposely not implemented</span> <a name="l00522"></a>00522 <a name="l00523"></a>00523 InstanceIdentifier m_OffsetTable[VMeasurementVectorSize + 1] ; <a name="l00524"></a>00524 FrequencyContainerPointer m_FrequencyContainer ; <a name="l00525"></a>00525 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_NumberOfInstances ; <a name="l00526"></a>00526 <a name="l00527"></a>00527 <span class="comment">// lower bound of each bin</span> <a name="l00528"></a>00528 std::vector< std::vector<MeasurementType> > m_Min ; <a name="l00529"></a>00529 <a name="l00530"></a>00530 <span class="comment">// upper bound of each bin</span> <a name="l00531"></a>00531 std::vector< std::vector<MeasurementType> > m_Max ; <a name="l00532"></a>00532 <a name="l00533"></a>00533 <span class="keyword">mutable</span> MeasurementVectorType m_TempMeasurementVector ; <a name="l00534"></a>00534 <span class="keyword">mutable</span> <a class="code" href="classitk_1_1Index.html">IndexType</a> m_TempIndex ; <a name="l00535"></a>00535 <a name="l00536"></a>00536 <span class="keywordtype">bool</span> m_ClipBinsAtEnds; <a name="l00537"></a>00537 <a name="l00538"></a>00538 } ; <a name="l00539"></a>00539 <a name="l00540"></a>00540 } <span class="comment">// end of namespace Statistics </span> <a name="l00541"></a>00541 } <span class="comment">// end of namespace itk </span> <a name="l00542"></a>00542 <a name="l00543"></a>00543 <span class="preprocessor">#ifndef ITK_MANUAL_INSTANTIATION</span> <a name="l00544"></a>00544 <span class="preprocessor"></span><span class="preprocessor">#include "itkHistogram.txx"</span> <a name="l00545"></a>00545 <span class="preprocessor">#endif</span> <a name="l00546"></a>00546 <span class="preprocessor"></span> <a name="l00547"></a>00547 <span class="preprocessor">#endif</span> <a name="l00548"></a>00548 <span class="preprocessor"></span> </pre></div></div> <hr><address><small> Generated at Thu May 7 22:56:59 2009 for ITK by <a href="http://www.stack.nl/~dimitri/doxygen/index.html"> <img src="http://www.stack.nl/~dimitri/doxygen/doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53> </a> 1.5.9 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>, © 1997-2000</small></address> </body> </html>