Actually, after setting the marching squares value to 0.5 and changing the linear extrusion filter it&#39;s working now.  Thanks!!!<br><br><div class="gmail_quote">On Thu, Feb 24, 2011 at 9:02 AM, Bill Lorensen <span dir="ltr">&lt;<a href="mailto:bill.lorensen@gmail.com">bill.lorensen@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;">Also, the stencil algorithm and marching squares use different<br>
criteria to determine whether a &quot;pixel&quot; is inside or outside.<br>
<br>
For the stencil, the pixel is considered a point and checked within a<br>
tolerance for inside/outside. I&#39;m guessing here).<br>
For marching squares, a &quot;square&quot; is composed of four pixels. If at<br>
least one of the four pixels is of the opposite state(inside/outside)<br>
then a contour will be generated.<br>
<div><div></div><div class="h5"><br>
On Thu, Feb 24, 2011 at 11:53 AM, Bill Lorensen &lt;<a href="mailto:bill.lorensen@gmail.com">bill.lorensen@gmail.com</a>&gt; wrote:<br>
&gt; Definitely set the isovalue to .5 if you have binary 0/1 images.<br>
&gt;<br>
&gt; On Wed, Feb 23, 2011 at 2:59 PM, David Gobbi &lt;<a href="mailto:david.gobbi@gmail.com">david.gobbi@gmail.com</a>&gt; wrote:<br>
&gt;&gt; I&#39;ve never used marching squares, but I have a guess as<br>
&gt;&gt; to what the problem might be.  If your binary image has<br>
&gt;&gt; values &quot;0&quot; and &quot;1&quot; then you should contour it at &quot;0.5&quot;.<br>
&gt;&gt;<br>
&gt;&gt;  - David<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Wed, Feb 23, 2011 at 12:27 PM, Jonathan Morra &lt;<a href="mailto:jonmorra@gmail.com">jonmorra@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt; If that&#39;s the case, then maybe I could have issues on the other side<br>
&gt;&gt;&gt; (converting binary images to contours, I do both).  For this I&#39;m using<br>
&gt;&gt;&gt; vtkMarchingSquares followed by vtkStripper<br>
&gt;&gt;&gt; int[] extent = binaryOrgan.GetExtent();<br>
&gt;&gt;&gt;         switch (orientation) {<br>
&gt;&gt;&gt;             case OrthoPanel.ORIENTATION_XY:<br>
&gt;&gt;&gt;                 extent[4] = slice;<br>
&gt;&gt;&gt;                 extent[5] = slice;<br>
&gt;&gt;&gt;                 break;<br>
&gt;&gt;&gt;             case OrthoPanel.ORIENTATION_XZ:<br>
&gt;&gt;&gt;                 extent[2] = slice;<br>
&gt;&gt;&gt;                 extent[3] = slice;<br>
&gt;&gt;&gt;                 break;<br>
&gt;&gt;&gt;             case OrthoPanel.ORIENTATION_YZ:<br>
&gt;&gt;&gt;                 extent[0] = slice;<br>
&gt;&gt;&gt;                 extent[1] = slice;<br>
&gt;&gt;&gt;                 break;<br>
&gt;&gt;&gt;         }<br>
&gt;&gt;&gt; vtkMarchingSquares marching = new vtkMarchingSquares();<br>
&gt;&gt;&gt;         marching.SetInput(binaryOrgan);<br>
&gt;&gt;&gt;         marching.SetImageRange(extent);<br>
&gt;&gt;&gt;         marching.SetValue(0, 1);<br>
&gt;&gt;&gt;         marching.Update();<br>
&gt;&gt;&gt;         vtkPolyData marchingOutput = marching.GetOutput();<br>
&gt;&gt;&gt;         vtkStripper stripper = new vtkStripper();<br>
&gt;&gt;&gt;         stripper.SetInput(marchingOutput);<br>
&gt;&gt;&gt;         stripper.Update();<br>
&gt;&gt;&gt; Does anything look like it could be causing my issues there?<br>
&gt;&gt;&gt; On Wed, Feb 23, 2011 at 11:18 AM, David Gobbi &lt;<a href="mailto:david.gobbi@gmail.com">david.gobbi@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; The value &quot;1e-6&quot; is a common tolerance because it is larger than<br>
&gt;&gt;&gt;&gt; most roundoff errors that are likely to occur in the calculations,<br>
&gt;&gt;&gt;&gt; but still small enough that it won&#39;t appreciably increase size of the<br>
&gt;&gt;&gt;&gt; region.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Setting the tolerance to zero does exactly what you noted.  If the<br>
&gt;&gt;&gt;&gt; pixel is exactly on the edge, then it is considered to be inside if the<br>
&gt;&gt;&gt;&gt; edge is a leading edge, or outside if the edge is a trailing edge.<br>
&gt;&gt;&gt;&gt; This is done so that if you have two contours which are adjacent<br>
&gt;&gt;&gt;&gt; (i.e. share an edge), the edge voxels will be considered to be in<br>
&gt;&gt;&gt;&gt; just one of the two contours instead of in both.  If the tolerance is<br>
&gt;&gt;&gt;&gt; set larger than zero, then the edge pixels would always be considered<br>
&gt;&gt;&gt;&gt; to be in both contours.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; If you are dealing with rectangular contours, then the contour<br>
&gt;&gt;&gt;&gt; lines should be made so that they lie halfway between pixels, instead<br>
&gt;&gt;&gt;&gt; of lying directly on top of the pixels.  Then there is no uncertainty<br>
&gt;&gt;&gt;&gt; about whether a pixel lies inside or outside.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;  - David<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Wed, Feb 23, 2011 at 11:58 AM, Jonathan Morra &lt;<a href="mailto:jonmorra@gmail.com">jonmorra@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt; I had the tolerance set to 0, and setting it to 1e-6 didn&#39;t fix the<br>
&gt;&gt;&gt;&gt; &gt; problem.<br>
&gt;&gt;&gt;&gt; &gt;  How did you come up with that number?  What&#39;s wrong with setting it to<br>
&gt;&gt;&gt;&gt; &gt; 0?<br>
&gt;&gt;&gt;&gt; &gt;  In my case usually the left and top side of the vtkImageData is being<br>
&gt;&gt;&gt;&gt; &gt; eroded, such that if I call the filter many times, the vtkImageData will<br>
&gt;&gt;&gt;&gt; &gt; eventually be blank because it will all be eroded.   However, sometimes<br>
&gt;&gt;&gt;&gt; &gt; the<br>
&gt;&gt;&gt;&gt; &gt; bottom and right grow in size, I haven&#39;t figured out which situations<br>
&gt;&gt;&gt;&gt; &gt; cause<br>
&gt;&gt;&gt;&gt; &gt; which.<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; On Wed, Feb 23, 2011 at 10:54 AM, David Gobbi &lt;<a href="mailto:david.gobbi@gmail.com">david.gobbi@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt; &gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; Hi Jonathan,<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; Whether a pixel is set depends on whether the center of the pixel<br>
&gt;&gt;&gt;&gt; &gt;&gt; is inside or outside the contour, irregardless of what proportion of<br>
&gt;&gt;&gt;&gt; &gt;&gt; the pixel&#39;s volume is inside or outside.<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; The only adjustment is the Tolerance, which should be set to<br>
&gt;&gt;&gt;&gt; &gt;&gt; around 1e-6 so that pixels right on the edge of the contour<br>
&gt;&gt;&gt;&gt; &gt;&gt; are considered to be inside.  The tolerance cannot be negative.<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;  - David<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; On Wed, Feb 23, 2011 at 11:22 AM, Jonathan Morra &lt;<a href="mailto:jonmorra@gmail.com">jonmorra@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; I am currently using vtkPolyDataToImageStencil to successfully<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; convert<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; contours represented as vtkPolyData to binary vtkImageData&#39;s.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;  However,<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; I&#39;m<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; noticing a problem with the output sometimes.  Sometimes the<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; resulting<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; binary images are slightly smaller or slightly bigger than the poly<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; data<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; they were made from.  I assume this is the result of partial volume<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; effects.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;  I would like to know 2 things<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; 1.  How does vtkPolyDataToImageStencil handle partial volume.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; 2.  Is there a way to tune partial volume in<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; vtkPolyDataToImageStencil?<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;  For<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; instance, a parameter which says if the contour includes less than x<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; percentage of the pixel then that pixel is 0.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; Thanks,<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; Jon<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; PS If my assumption about partial volume effects is wrong, please let<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; me<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; know.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; Visit other Kitware open-source projects at<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; Please keep messages on-topic and check the VTK FAQ at:<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; Follow this link to subscribe/unsubscribe:<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; <a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;&gt;<br>
&gt;&gt; Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;&gt;<br>
&gt;&gt; Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
&gt;&gt;<br>
&gt;&gt; Follow this link to subscribe/unsubscribe:<br>
&gt;&gt; <a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
&gt;&gt;<br>
&gt;<br>
</div></div></blockquote></div><br>