I'm trying to iterate over a subregion of an image, but the iterator
never seems to know when it reaches the end of the region.  My image is
fairly large, but only a small portion of it is non-zero (it's a
segmentation), so I don't want to waste time iterating through the
whole image.  The code that doesn't work is as follows:
<br><br>typedef itk::ImageMaskSpatialObject&lt; Dimension &gt;&nbsp;&nbsp; MaskType;<br>MaskType::Pointer&nbsp; mask = MaskType::New();<br>mask-&gt;SetImage( image1 );<br>ImageType::RegionType boundingBoxRegion = mask-&gt;GetAxisAlignedBoundingBox
<div id="1fga" class="ArwC7c ckChnd">Region();
<br><br>boundingBoxRegion.PadByRadius(10);<br><br>ConstIteratorType itr1(image1, boundingBoxRegion);<br><br>for (itr1.GoToBegin(); !itr1.IsAtEnd(); ++itr1)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;vol1 += itr1.Get() ? 1 : 0;<br>&nbsp;&nbsp;&nbsp; }<br><br>
The
reason I am doing this is to compare two manual segmentations of the
same object.&nbsp; It works just fine if I iterate over the entire image,
but it takes a while.&nbsp; It also works if I don&#39;t try to pad the region,
but then I won&#39;t get accurate results because the discrepancies of one
segmentation may be slightly outside of the
AxisAlignedBoundingBoxRegion of the other.&nbsp; 10 voxels seems like a fair
margin of error, I doubt I could be off by that much in my manual
segmentation, so it seemed a reasonable approach.&nbsp; However, the
iteration loop keeps on going until it seg faults.&nbsp; Is there something
else I should be doing to slightly increase the size of my bounding
box?
</div>