[Insight-developers] FloodFilledSpatialFunctionIterator
Stephen R. Aylward
aylward@unc.edu
Tue, 05 Jun 2001 16:26:46 -0400
> > SpatialIterator
> > -------------------+-----------------------
> > | |
> > FilledSpatialIterator SurfaceSpatialIterator
> > |------+-----------------------|
> > FunctionFilledSpatialIterator MaskFilledSpatialIterator
>
> Could you elaborate a bit on the class relationships?
SpatialIterator would define an API and maybe do some basic
initialization of stuff - mainly it provides an API.
FilledSpatialIterator would contain most of the code. It would step
though voxels and test each voxel via a call to a virtual function let's
call it "testVoxel"
FunctionFilledSpatialIterator would implement "testVoxel" by evaluating
a function and it would provide an API for setting the function
MaskFilledSpatialIterator would provde an API for setting a mask and
it's implementation of "testVoxel" would see if the mask value at that
voxel passes some criterion.
SurfaceSpatialIterator does as you said - it tests for a voxel being on
an edge of an object. It too would call a "testVoxel" at each voxel to
see if it is part of the object. So, SurfaceSpatialIterator would also
need to be derived...okay an even better design is obvious:
Create a class that impliments "testVoxel" for functions and another
that impliments "testVoxel" for masks. Then pass those classes as
template arguments to the FilledSpatialIterator and the
>
> I can see that SpatialIterator would iterate over a linked list of indices
> rather than over an image region. I'm not sure about the rest though... is
> the distinction between a surface and filled iterator whether or not you're
> interested in:
>
> 1) All pixels "inside the function", resulting in a filled iterator
> 2) All pixels "inside the function" that are neighbors of a pixel not inside
> the function, resulting in a surface iterator
>
> Also, perhaps elaborate on the differences between Function and Mask filled
> iterators?
>
> Thanks,
>
> -Damion-
--
===============================================
Stephen R. Aylward
Assistant Professor of Radiology
Adjunct Assistant Professor of Computer Science
http://www.cs.unc.edu/~aylward
aylward@unc.edu
(919) 966-9695