<div dir="ltr">My Mistake not all voxels are visited in the for loop here, using <span style="color:rgb(0,0,0);font-size:10px;line-height:1.2em">  </span><span class="" style="font-size:10px;line-height:1.2em;color:rgb(0,0,255)">while</span><span class="" style="font-size:10px;line-height:1.2em;color:rgb(0,128,0)">(</span><span class="" style="font-size:10px;line-height:1.2em;color:rgb(0,0,64)">!</span><span style="color:rgb(0,0,0);font-size:10px;line-height:1.2em">imageIterator.</span><span class="" style="font-size:10px;line-height:1.2em;color:rgb(0,119,136)">IsAtEnd</span><span class="" style="font-size:10px;line-height:1.2em;color:rgb(0,128,0)">(</span><span class="" style="font-size:10px;line-height:1.2em;color:rgb(0,128,0)">)</span><span class="" style="font-size:10px;line-height:1.2em;color:rgb(0,128,0)">)</span><div>
<span class="" style="font-size:10px;line-height:1.2em;color:rgb(0,128,0)"><br></span></div><div style><span class="" style="font-size:10px;line-height:1.2em;color:rgb(0,128,0)">does the job</span></div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Fri, Dec 6, 2013 at 4:04 PM, Emma Saunders <span dir="ltr">&lt;<a href="mailto:emmasaunders123@gmail.com" target="_blank">emmasaunders123@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hi all,<div><br></div><div>I am using the  ImageRandomNonRepeatingConstIteratorWithIndex to randomly sample images without repeat.  When using the number of samples as the size of the image however I don&#39;t get the full image back.</div>

<div><br></div><div>I am using the example in examples/data/brainweb1e1a10f20.mha.  Below is my code, attached is my result,</div><div><br></div><div>Any ideas?</div><div><br></div><div>
<br></div><div><div>#include &quot;itkImageFileWriter.h&quot;</div><div>#include &quot;itkImageFileReader.h&quot;</div><div>#include &quot;itkImageFileWriter.h&quot;</div><div>#include &quot;itkImage.h&quot;</div><div>
#include &quot;itkImageFileReader.h&quot;</div><div>#include &quot;itkImageRandomConstIteratorWithIndex.h&quot;</div><div>#include &quot;itkImageRandomNonRepeatingConstIteratorWithIndex.h&quot;</div><div> </div><div>int main(int argc, char*argv[])</div>

<div>{</div><div><span style="white-space:pre-wrap">        </span></div><div>  const    unsigned int    Dimension = 3;</div><div>  typedef unsigned char PixelType;</div><div>  typedef itk::Image&lt;PixelType, Dimension&gt;  ImageType;</div>

<div><br></div><div>  typedef itk::ImageFileReader&lt; ImageType  &gt; ImageReaderType;</div><div>  typedef itk::ImageFileWriter&lt; ImageType  &gt; ImageWriterType;</div><div><br></div><div>  ImageReaderType::Pointer ImageReader   = ImageReaderType::New();</div>

<div>  ImageWriterType::Pointer ImageWriter =  ImageWriterType::New();</div><div>    </div><div>  ImageReader-&gt;SetFileName( argv[1] );</div><div>  ImageWriter-&gt;SetFileName( argv[2] );</div><div>  </div><div><br></div>

<div>    ImageType::Pointer Image = ImageReader-&gt;GetOutput();</div><div>    Image-&gt;Update();</div><div><br></div><div><span style="white-space:pre-wrap">        </span>ImageType::RegionType region=Image-&gt;GetLargestPossibleRegion();</div>

<div><span style="white-space:pre-wrap">        </span>ImageType::SizeType size=region.GetSize();</div><div><span style="white-space:pre-wrap">        </span>ImageType::IndexType index=region.GetIndex();</div><div>    ImageType::IndexType start = index;</div>

<div>    ImageType::SpacingType   spacing   = Image-&gt;GetSpacing();</div><div>    ImageType::DirectionType direction = Image-&gt;GetDirection();</div><div><br></div><div><br></div><div>    ImageType::RegionType newregion;</div>

<div>    newregion.SetSize(size);</div><div>    newregion.SetIndex(start);</div><div>    std::cout &lt;&lt; &quot;The size of the image is &quot; &lt;&lt; size &lt;&lt;std::endl;</div><div><br></div><div>//Define Output Image</div>

<div>        </div><div>  ImageType::Pointer output = ImageType::New();</div><div>  output-&gt;SetRegions(newregion);</div><div>  output-&gt;SetSpacing(spacing);</div><div>  output-&gt;SetDirection(direction);</div><div>
  output-&gt;Allocate();   </div>
<div>  output-&gt;FillBuffer(0);</div><div>  output-&gt;Update();</div><div>                                     </div><div> typedef itk::ImageRandomNonRepeatingConstIteratorWithIndex&lt;</div><div>                                          ImageType &gt; ConstIteratorType;</div>

<div>                                          </div><div>                                        </div><div>  ConstIteratorType inputIt(  Image,  region );</div><div><br></div><div>   unsigned int number = 7069860;</div>

<div>  inputIt.SetNumberOfSamples( number ); //Number of samples total is 3281040</div><div>  std::cout &lt;&lt; &quot;The number of samples is &quot; &lt;&lt; number &lt;&lt; std::endl;</div><div>  inputIt.ReinitializeSeed();</div>

<div>  inputIt.GoToBegin();</div><div>    </div><div>       </div><div>  //while(!inputIt.IsAtEnd())</div><div>  for ( inputIt.GoToBegin(); ! inputIt.IsAtEnd(); ++inputIt)</div><div>    {</div><div>    </div><div>    //std::cout &lt;&lt;inputIt.GetIndex()&lt;&lt; &quot; &quot; ;</div>

<div>    //std::cout &lt;&lt; inputIt.Get() &lt;&lt; std::endl;</div><div>    output-&gt;SetPixel(inputIt.GetIndex(), inputIt.Get());</div><div>    </div><div>    ++inputIt;</div><div>    }</div><div>    </div><div>  output-&gt;Update();</div>

<div>  ImageWriter-&gt;SetInput( output );</div><div>  ImageWriter-&gt;Update();</div><div><br></div><div> </div><div> </div><div>  return EXIT_SUCCESS;</div><div>}</div></div><div><br></div><div><br></div><div>
Thanks Emma</div></div>
</blockquote></div><br></div>