[Insight-users] How to use multiple seeds in level set segmentations?

Luis Ibanez luis.ibanez at kitware.com
Tue Aug 10 02:46:05 EDT 2004


Hi Weiguand,

mm, you haven't done your homework.

You didn't read the doxygen documentation of the
SetTrialPoints() method in the FastMarching filter.

So, you missed to read the documentation of its
argument, the VectorContainer class, that allows
you to hold a collection of elements.

You didn't read the Section of the ITK SoftwareGuide
describing the FastMarching filter either.

So you missed the following text in pdf-page 369:


> The FastMarchingImageFilter requires the user to provide a seed point from which the contour
> will expand. The user can actually pass not only one seed point but a set of them. A good
> set of seed points increases the chances of segmenting a complex object without missing parts.
> The use of multiple seeds also helps to reduce the amount of time needed by the front to visit
> a whole object and hence reduces the risk of leaks on the edges of regions visited earlier.


and you missed the code explanation in pdf-page 370,
illustrating that FastMarching filter has a NodeContainter
type. You instantiate one of such containers and insert
seed points as nodes using:

     NodeContainer::Poiner seeds = NodeContainer::New();

     NodeType seed1;
     NodeType seed2;
     NodeType seed3;

     seeds->InsertElement( 0, seed1 );
     seeds->InsertElement( 1, seed2 );
     seeds->InsertElement( 2, seed3 );

     fastMarchingFilter->SetTrialPoints( seeds );


Please read section  9.3.1 of the Software Guide.

    http://www.itk.org/ItkSoftwareGuide.pdf

in pdf-pages 365-371.



    Regards,



       Luis



---------------------
wyao4 at uwo.ca wrote:

> Hi, Luis:
> 
> Sorry for bothering you again.
> 
> I have read the documents and the code of FastMarchingImageFilter.cxx and
> found(seems to me) that the current procedure is still designed for one seed.
> Of course, I can change and add some codes into the cxx program so that I can
> feed more seeds. Could you please tell me whether I need to change and add
> codes in order to let the filter accept multiple seeds? I hope I needn't:) In
> this case, how can I feed multiple seeds? Thank you a lot!
> 
> Weiguang
> Quoting Luis Ibanez <luis.ibanez at kitware.com>:
> 
> 
>>Hi Weiguang,
>>
>>Most of the LevelSet methods in ITK do not expect seed points
>>as inputs, they actually expect an initial LevelSet.
>>
>>The only LevelSet method that expects seed points as inputs is
>>FastMarching, and it accepts any number of them. Please look at
>>the doxygen documentation for this class
>>
>>
> 
> http://www.itk.org/Insight/Doxygen/html/classitk_1_1FastMarchingImageFilter.html
> 
>>In order to use multiple seed points, just add more points to
>>the NodeContainer that you pass to the FastMarching filter.
>>
>>It is common to use FastMarching as a mechanism for initializaing
>>a more advanced LevelSet method. In that context you provide seed
>>points to FastMarching, execute it, get a rough level set as output
>>and use it as initial level set for a method such as ShapeDetection
>>or GeodesicActiveContours.
>>
>>Please read the Chapter on LevelSet segmentation from the ITK Software
>>Guide. These concepts are explained there in detail.
>>
>>       http://www.itk.org/ItkSoftwareGuide.pdf
>>
>>
>>BTW, You are right, bone is not trivial to segment. As with any other
>>anatomical structure, you get 95% segmented correctly in the first few
>>minutes, and the remaining 5% may take several months of fine tunning.
>>One of the issues with bone, (as with other anatomical structures) is
>>that the definition of what "bone" is, happens to be quite ambiguous.
>>You need to specify if you are looking for cortical bone, travecular,
>>bone, marrow cavities, how much you care about cartilage and how much
>>you care about the epiphyses where calcification is lower. As with
>>Image Registration, Image Segmentation can only be succesful when you
>>have an application at hand that tells you 'how much' is 'good enough'.
>>
>>
>>Regards,
>>
>>
>>    Luis
>>
>>
>>---------------------------
>>wyao4 at uwo.ca wrote:
>>
>>
>>>Hi,
>>>
>>>The procedures that ITK provides such as GeodesicActiveContourImageFilter
>>
>>seem
>>
>>>accept one seed only. This could make the performance of the filters quite
>>
>>poor
>>
>>>in segmenting objects like bone(I am not kidding, bone is hard to be
>>
>>segmented
>>
>>>because of its inner structure). However, if we give more seeds the
>>
>>performance
>>
>>>could be better. Do any body know how to give multiple seeds for these
>>
>>filters?
>>
>>>Thanks.
>>>
>>>Weiguang
>>>
>>>_______________________________________________
>>>Insight-users mailing list
>>>Insight-users at itk.org
>>>http://www.itk.org/mailman/listinfo/insight-users
>>>
>>
>>
>>
>>
>>
> 
> 
> 
> 
> 








More information about the Insight-users mailing list