Hello all,<br><br>I'd like to compute the mean and standard deviation of a part of an image. <br>That part is described by an ImageMaskSpatialObject.<br><br>The following program is what I came up with, but it behaves strangely. <br>the output is<br><br>Sample mean = [-1.#IND]<br>Sample covariance = -0<br><br>I think probably something wrong with the iterator, because<br>m_NumberOfPixels: 0<br><br>Also, the calculator worked fine if I use a ellipse as an input.<br><br>Any help/ideas are much appreciated, here is my code, the data is available at http://www.duke.edu/~kurtzhao/data.zip:<br><br>int TestSampler( ) <br>  {<br>  typedef double PixelType ;<br>  typedef unsigned char OverlayPixelType ;<br>  typedef itk::Image &lt; PixelType, 3 &gt; ImageType;<br>  typedef itk::Image &lt; OverlayPixelType, 3 &gt; OverlayType;<br><br>  typedef itk::ImageFileReader &lt; ImageType &gt; ImageReaderType;<br>  ImageReaderType::Pointer imageReader = ImageReaderType::New();<br>  imageReader -&gt; SetFileName( &quot;image.mhd&quot; ) ;<br>  try<br>    {<br>    imageReader -&gt; Update();<br>    }<br>  catch( ... )<br>    {<br>    std::cout &lt;&lt; &quot;Problems reading image file &quot; &lt;&lt; <br>      imageReader-&gt; GetFileName ( ) &lt;&lt; std::endl;<br>    return EXIT_FAILURE ;<br>    }<br><br>  typedef itk::ImageFileReader &lt; OverlayType &gt; OverlayReaderType;<br>  OverlayReaderType::Pointer overlayReader = OverlayReaderType::New();<br>  overlayReader -&gt; SetFileName( &quot;overlay.mhd&quot; ) ;<br>  try<br>    {<br>    overlayReader -&gt; Update();<br>    }<br>  catch( ... )<br>    {<br>    std::cout &lt;&lt; &quot;Problems reading overlay file &quot; &lt;&lt; <br>      overlayReader-&gt; GetFileName ( ) &lt;&lt; std::endl;<br>    return EXIT_FAILURE;<br>    }<br>  <br>  ImageType::Pointer image = imageReader -&gt; GetOutput ( ) ;<br><br>  OverlayType::Pointer overlay = overlayReader -&gt; GetOutput ( ) ;<br><br>  ImageType::IndexType indexInside ;<br>  indexInside [ 0 ] = 140 ;<br>  indexInside [ 1 ] = 122 ;<br>  indexInside [ 2 ] = 24 ;<br><br>  typedef itk::ImageMaskSpatialObject&lt;3&gt; ImageMaskSpatialObject;<br>  ImageMaskSpatialObject::Pointer maskSO = ImageMaskSpatialObject::New();<br>  maskSO-&gt;SetImage( overlay );<br>  //maskSO -&gt; Print ( std::cout ) ;<br>  ImageMaskSpatialObject::PointType inside ;<br>  ImageMaskSpatialObject::PointType outside ;<br>  for ( int i = 0 ; i &lt; 3 ; i ++)<br>    {<br>    inside [ i ] = indexInside [ i ] * <br>     image -&gt; GetSpacing ( ) [ i ] ;<br>    } <br>  outside [ 0 ] = 197 ;<br>  outside [ 1 ] = 65 ;<br>  outside [ 2 ] = 14 ;<br>  std::cout &lt;&lt; &quot;Is my point &quot; &lt;&lt; indexInside &lt;&lt; &quot; inside my mask image? &quot;<br>    &lt;&lt; (int ) overlay -&gt; GetPixel ( indexInside ) &lt;&lt; std::endl;<br>  std::cout &lt;&lt; &quot;Is my point &quot; &lt;&lt; inside &lt;&lt; &quot; inside my mask? &quot;<br>    &lt;&lt; maskSO-&gt;IsInside(inside) &lt;&lt; std::endl;<br>  std::cout &lt;&lt; &quot;Is my point &quot; &lt;&lt; outside &lt;&lt; &quot; outside my mask? &quot;<br>    &lt;&lt; !maskSO-&gt;IsInside(outside) &lt;&lt; std::endl;<br><br><br>  typedef itk::SpatialObjectToImageStatisticsCalculator&lt; <br>    ImageType, ImageMaskSpatialObject&gt; CalculatorType;<br>  CalculatorType::Pointer calculator = CalculatorType::New();<br>  calculator-&gt;SetImage(image);<br>  calculator-&gt;SetSpatialObject( maskSO );<br>  calculator-&gt;Update();<br>  calculator-&gt;Print ( std::cout );<br>  std::cout &lt;&lt; &quot;Sample mean = &quot; &lt;&lt; calculator-&gt;GetMean() &lt;&lt; std::endl ;<br>  std::cout &lt;&lt; &quot;Sample covariance = &quot; &lt;&lt; calculator-&gt;GetCovarianceMatrix();<br>  return EXIT_SUCCESS ;<br>  }<br>int main(int argc, char **argv)<br>  {<br>  //itkEllipseBoundaryToImageFilterTest ( ) ;<br>  TestSampler ( ) ;<br><br>  return 1 ;<br>  }<br><br>Best Regards<br>Kurt Zhao<br><!-- footer --><br><br><br><br><br><div style="border-bottom:1px solid #999"></div><br>

        <font color="black" style="font-size:14.8px">你 不 想 试 试 今 夏 最 “酷” 的 邮 箱 吗 ?</font>
        <br>
         <a href="http://www.126.com/" target="_blank" style="font-size:13px;line-height:160%;color:blue">蕴 涵 中 华 传 统 文 化 于 世 界 一 流 科 技 之 中,创 新 Ajax 技 术,126 “D 计 划”火 热 体 验 中 !
</a>