Hi Luis,<br>thanks for your quick response. Here my source code, part 1 is the image I generate, and in part 2 this image is then used as the input image.<br><br>Part 1:<br>&nbsp;&nbsp;&nbsp; ...<br>&nbsp;&nbsp;&nbsp; ImageType::Pointer image = ImageType::New();
<br>&nbsp;&nbsp;&nbsp; // The image region should be initialized<br>&nbsp;&nbsp;&nbsp; ImageType::IndexType start;<br>&nbsp;&nbsp;&nbsp; ImageType::SizeType&nbsp; size;<br>&nbsp;&nbsp;&nbsp; size[0]&nbsp; = imageSize[0];&nbsp; // size along X<br>&nbsp;&nbsp;&nbsp; size[1]&nbsp; = imageSize[1];&nbsp; // size along Y<br>&nbsp;&nbsp;&nbsp; size[2]&nbsp;&nbsp;&nbsp; &nbsp;= imageSize[2];
<br>&nbsp;&nbsp;&nbsp; start[0] =&nbsp;&nbsp; 0;&nbsp; // first index on X<br>&nbsp;&nbsp;&nbsp; start[1] =&nbsp;&nbsp; 0;&nbsp; // first index on Y<br>&nbsp;&nbsp;&nbsp; start[2] =&nbsp;&nbsp; 0;<br><br>&nbsp;&nbsp;&nbsp; ImageType::RegionType region;<br>&nbsp;&nbsp;&nbsp; region.SetSize( size );<br>&nbsp;&nbsp;&nbsp; region.SetIndex( start );<br><br>
&nbsp;&nbsp;&nbsp; // Pixel data is allocated<br>&nbsp;&nbsp;&nbsp; image-&gt;SetRegions( region );<br>&nbsp;&nbsp;&nbsp; image-&gt;Allocate();<br><br>&nbsp;&nbsp;&nbsp; ImageType::PixelType normalise = size[0]*size[0];<br>&nbsp;&nbsp;&nbsp; for(int k = 0; k &lt; size[2]; k++) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for(int j = 0; j &lt; size[1]; j++) {
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for(int i = 0; i &lt; size[0]; i++) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ImageType::IndexType index;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; index[0] = i; index[1] = j; index[2] = k;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ImageType::PixelType elastic = i*i;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; elastic = elastic / normalise;
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; elastic = elastic * maxDeform;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; elastic *= -1;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; image-&gt;SetPixel(index, elastic);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; ...<br><br>Part 2:<br>&nbsp;&nbsp;&nbsp; ...<br>&nbsp;&nbsp;&nbsp; // build up neighborhood iteration stuff
<br>&nbsp;&nbsp;&nbsp; typename NeighborhoodAlgorithm::ImageBoundaryFacesCalculator&lt;InputImageType&gt;::FaceListType faceList;<br>&nbsp;&nbsp;&nbsp; NeighborhoodAlgorithm::ImageBoundaryFacesCalculator&lt;InputImageType&gt; bC;<br>&nbsp;&nbsp;&nbsp; ConstNeighborhoodIterator&lt;InputImageType&gt;::RadiusType radius;
<br>&nbsp;&nbsp;&nbsp; radius.Fill(1);<br>&nbsp;&nbsp;&nbsp; faceList = bC(input, input-&gt;GetRequestedRegion(), radius);<br>&nbsp;&nbsp;&nbsp; typename NeighborhoodAlgorithm::ImageBoundaryFacesCalculator&lt;InputImageType&gt;::FaceListType::iterator fit;<br><br>&nbsp;&nbsp;&nbsp; // TODO: Why are non-boundary not first element?
<br>&nbsp;&nbsp;&nbsp; fit = faceList.begin();<br>&nbsp;&nbsp;&nbsp; //for(unsigned int i = 0; i &lt; 6; i++) fit++;<br>&nbsp;&nbsp;&nbsp; for(; fit != faceList.end(); ++fit) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ConstNeighborhoodIterator&lt;InputImageType&gt; bit(radius, input, *fit);<br><br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // build up image iterator<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ImageRegionIterator&lt;OutputImageType&gt; out(output, *fit);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // loop over neighborhoods and write to output image<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for(; !bit.IsAtEnd(); ++bit, ++out) {
<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; out.Set( bit.GetCenterPixel() );<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; ...<br><br>Chris<br><br><div><span class="gmail_quote">On 10/11/07, <b class="gmail_sendername">Luis Ibanez</b> &lt;<a href="mailto:luis.ibanez@kitware.com">
luis.ibanez@kitware.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>Hi Christof,<br><br>Can you post to the list a minimum source code example illustrating
<br>this behavior ?<br><br>It sounds like a bug, but we need a way to reproduce it in order<br>to track any potential problem.<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;Thanks<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Luis<br><br><br>------------------------<br>Christof Seiler wrote:
<br>&gt; Hi all,<br>&gt; I want to use the NeighborhoodAlgorithm::ImageBoundaryFacesCalculator<br>&gt; class but I ran into the following problem.<br>&gt;<br>&gt; I call:<br>&gt; ...<br>&gt; faceList = faceCalculator(input, input-&gt;GetRequestedRegion(), radius);
<br>&gt; ...<br>&gt; and in the user&#39;s guide it says:<br>&gt; &quot;The first element in the list is always the inner region, which may or<br>&gt; may not be important depending on the application.&quot;<br>&gt;<br>&gt; but in fact I get boundary faces first and the non-boundary element is
<br>&gt; in last position.<br>&gt;<br>&gt; What am I missing?<br>&gt; Thanks in advance.<br>&gt; Chris<br>&gt;<br>&gt;<br>&gt; ------------------------------------------------------------------------<br>&gt;<br>&gt; _______________________________________________
<br>&gt; Insight-users mailing list<br>&gt; <a href="mailto:Insight-users@itk.org">Insight-users@itk.org</a><br>&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users
</a><br></blockquote></div><br>