[vtkusers] vtkPolyDataToImageStencil with partial volume

David Gobbi david.gobbi at gmail.com
Wed Feb 23 14:18:18 EST 2011


The value "1e-6" is a common tolerance because it is larger than
most roundoff errors that are likely to occur in the calculations,
but still small enough that it won't appreciably increase size of the
region.

Setting the tolerance to zero does exactly what you noted.  If the
pixel is exactly on the edge, then it is considered to be inside if the
edge is a leading edge, or outside if the edge is a trailing edge.
This is done so that if you have two contours which are adjacent
(i.e. share an edge), the edge voxels will be considered to be in
just one of the two contours instead of in both.  If the tolerance is
set larger than zero, then the edge pixels would always be considered
to be in both contours.

If you are dealing with rectangular contours, then the contour
lines should be made so that they lie halfway between pixels, instead
of lying directly on top of the pixels.  Then there is no uncertainty
about whether a pixel lies inside or outside.

 - David


On Wed, Feb 23, 2011 at 11:58 AM, Jonathan Morra <jonmorra at gmail.com> wrote:
> I had the tolerance set to 0, and setting it to 1e-6 didn't fix the problem.
>  How did you come up with that number?  What's wrong with setting it to 0?
>  In my case usually the left and top side of the vtkImageData is being
> eroded, such that if I call the filter many times, the vtkImageData will
> eventually be blank because it will all be eroded.   However, sometimes the
> bottom and right grow in size, I haven't figured out which situations cause
> which.
>
> On Wed, Feb 23, 2011 at 10:54 AM, David Gobbi <david.gobbi at gmail.com> wrote:
>>
>> Hi Jonathan,
>>
>> Whether a pixel is set depends on whether the center of the pixel
>> is inside or outside the contour, irregardless of what proportion of
>> the pixel's volume is inside or outside.
>>
>> The only adjustment is the Tolerance, which should be set to
>> around 1e-6 so that pixels right on the edge of the contour
>> are considered to be inside.  The tolerance cannot be negative.
>>
>>  - David
>>
>>
>> On Wed, Feb 23, 2011 at 11:22 AM, Jonathan Morra <jonmorra at gmail.com>
>> wrote:
>> > I am currently using vtkPolyDataToImageStencil to successfully convert
>> > contours represented as vtkPolyData to binary vtkImageData's.  However,
>> > I'm
>> > noticing a problem with the output sometimes.  Sometimes the resulting
>> > binary images are slightly smaller or slightly bigger than the poly data
>> > they were made from.  I assume this is the result of partial volume
>> > effects.
>> >  I would like to know 2 things
>> > 1.  How does vtkPolyDataToImageStencil handle partial volume.
>> > 2.  Is there a way to tune partial volume in vtkPolyDataToImageStencil?
>> >  For
>> > instance, a parameter which says if the contour includes less than x
>> > percentage of the pixel then that pixel is 0.
>> > Thanks,
>> > Jon
>> > PS If my assumption about partial volume effects is wrong, please let me
>> > know.
>> > _______________________________________________
>> > Powered by www.kitware.com
>> >
>> > Visit other Kitware open-source projects at
>> > http://www.kitware.com/opensource/opensource.html
>> >
>> > Please keep messages on-topic and check the VTK FAQ at:
>> > http://www.vtk.org/Wiki/VTK_FAQ
>> >
>> > Follow this link to subscribe/unsubscribe:
>> > http://www.vtk.org/mailman/listinfo/vtkusers
>> >
>> >
>
>



More information about the vtkusers mailing list