[vtk-developers] The ImageStencil Issue

David Gobbi dgobbi at atamai.com
Tue Aug 22 18:46:41 EDT 2006


Hi Dean,

All of the regression test for the stencil are still passing.  Do you 
know what might be causing the code to fail?

 - David


dean.inglis at camris.ca wrote:
> Hi David,
>
> I find stencils extremely valuable!  In fact,
> I have had to base most of my production code 
> on a modified pre-executives VTK branch to keep
> my image region of interest pipelines functioning.
> I'm all in favor of any  fixes/enhancements/expansions.
>
> Dean
>
>   
>> Hi All,
>>
>> I'd like to redress some ugliness that I introduced to VTK a few years back.
>>
>> The vtkImageStencilSource class requires the Spacing and Origin of 
>> whichever image eventually uses the stencil to be propagated the wrong 
>> way along the pipeline.  Ouch!
>>
>> Obviously the vtkImageStencilSource should actually take an Image as an 
>> input and should then use that image to get the Spacing and Origin to 
>> use for the stencil.  This is a fairly minor change.  For VTK 5.2, I can 
>> then make VTK produce a deprecation warning if people don't set an input.
>>
>> I would call the method SetInformationInput() to make it clear that only 
>> the information (the Spacing, Origin, and WholeExtent) of the data would 
>> be used.  Also, vtkPolyDataToImageStencil() needs it SetInput() method 
>> for the polydata input.
>>
>> For example:
>>
>> stencilSource = vtkImplicitFunctionToImageStencil()
>> stencilSource.SetInput(vtkSphere())
>> stencilSource.SetInformationInput(input)
>>
>> histogram = vtkImageAccumulate()
>> histogram.SetStencil(stencilSource.GetOutput())
>> histogram.SetInput(input)
>>
>> Do people think this is a good change?  Are there many people out there 
>> who even use stencils in VTK?  How many people know what a stencil is?  
>> (Hint: it is an image mask stored in an efficient run-length format 
>> instead of vtkImageData format).
>>
>> Also, I'm not sure what the methods should be named in light of the VTK 
>> 5 pipeline changes.   Maybe I should name them as follows:
>>
>> SetInformationInputConnection(vtkAlgorithmInput *) instead of 
>> SetInformationInput(vtkImageData *)
>> SetStencilInputConnection(vtkAlgorithmInput *) instead of 
>> SetStencil(vtkImageStencilData *)
>>
>> I'd like to get this right, and I think that only small changes are 
>> necessary to do so.
>>
>> Also, of course, I'd like to see more of the filters in Imaging 
>> utilizing stencils.  Right now only a handful do (Blend, Reslice, 
>> Stencil, Accumulate).  The potential here is very high... a stencil 
>> allows you to perform an operation only within a specified region of 
>> interest, where the shape of the region can be whatever you desire.  The 
>> ROI can even be described by a vtkPolyData mesh or by a 
>> vtkImplicitFunction, since these types can be converted efficiently into 
>> vtkImageStencilData.
>>
>>  - David
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> vtk-developers mailing list
>> vtk-developers at vtk.org
>> http://www.vtk.org/mailman/listinfo/vtk-developers
>>
>>     
>
>
>   




More information about the vtk-developers mailing list