[Insight-users] [Re] Correct use of MRIBiasFieldCorrectionFilter ?

Joshua Cates cates@sci.utah.edu
Fri, 28 Feb 2003 11:09:57 -0700 (MST)


Hi Jisung,

Have a look at itkSliceIterator, it may or may not be what you need.

Josh.

______________________________
 Josh Cates			
 School of Computer Science	
 University of Utah
 Email: cates@sci.utah.edu
 Phone: (801) 587-7697
 URL:   http://www.sci.utah.edu/~cates


On Fri, 28 Feb 2003, Jisung Kim wrote:

> Hi Martin.
> 
> Iterators don't care about the dimension at all. As
> you already know, an iterator provides a sequential
> access method for a type of container. Current
> implementation of the interator in Legendre polynom
> just iterates over the whole bias field (represented
> by a Legendre polynom). In the case of 3D bias field,
> the iterator iterates from (0,0,0) (1, 0, 0), ...
> (size of x, y, z ). I can implement a slice iterator
> that has offsets for each dimension. I guess you
> prefer the slice iterator to the random acces
> iterator. I will look at the STL slice iterator's
> implementation and try to provide slice iterator
> implementataion that is general enough for other
> purpose and complies as much as possilbe to the STL
> way. It will take some time. When it's done. I'll
> email you.
> 
> 
> Thanks,
> 
> 
>    
> --- Martin Styner <martin_styner@ieee.org> wrote:
> > Hi Jisung
> > 
> > Thanks for the modifications.
> > In regard to the subsampling of the
> > energy-computation (which takes up 
> > most of the computation time since it has to be
> > computed over the whole 
> > image, or a subsampled part of the image), I usually
> > used a 
> > subsampling-factor of 2 (or 3) in each direction
> > (factor 8 speed up). 
> > But since the subsampling is not just in the first
> > dimension, I don't 
> > know whether iterator + n would work.  E.g. if
> > subsamling in z is 2, 
> > then n would be different depending on whether you
> > are iterating within 
> > a slice or at the slice edge to next slice. Or do I
> > misunderstand the 
> > iterator-concept? Also, since the
> > subsampling-factors in x,y and z might 
> > not be the same, this would not work either. Is
> > there a possibility to 
> > specify in an iterator the subsampling factors or
> > the iterator-step-size 
> > for each dimension separately and then just use
> > ++iterator?
> > Best regards
> > Martin
> > 
> > On Tuesday, February 25, 2003, at 04:05 , Jisung Kim
> > wrote:
> > 
> > > Hi Martin.
> > >
> > > Thanks for clarification. I will change the ITK
> > > documentation to include the right links. And I
> > will
> > > modify the Legendre polynomial to allow users to
> > > specify subsampling. Current implementation
> > doesn't
> > > allow subsampling. I'm think about changing the
> > > interator of the Legendre polynomial comply to the
> > > specs of STL Random Iterator, so that users can
> > use
> > > iterator + n (unsigned int) in addition to
> > ++iterator.
> > > Do you think it's a valid subsampling method for
> > the
> > > bias correction? If so, what n would be a good
> > default
> > > value?
> > >
> > > Thanks,
> > >
> > > Jisung.
> > > --- Martin Styner <martin_styner@ieee.org> wrote:
> > >> Hi Christof, Jinsung
> > >>
> > >> Jinsung is quite right in his answer,  but in my
> > >> experience there
> > >> shouldn't be too much problems selecting the mean
> > >> values and the
> > >> standard deviation values, unless the image is
> > quite
> > >> complex and  the
> > >> values are far off. The image that you provided
> > >> seems to have only one
> > >> single class, is that correct? Did you model this
> > as
> > >> a single class
> > >> correction problem or did you also use the
> > >> background as an additional
> > >> class? If so then you need to mask the
> > background,
> > >> since the background
> > >> should not be modeled as a class, because the
> > bias
> > >> field does not affect
> > >> the background. As single class problem, the
> > class
> > >> parameter values
> > >> should not be too sensitive (I only adjust the
> > other
> > >> values e.g. c_grow
> > >> in few exceptional cases) , but also I never used
> > >> the bias correction in
> > >> images with only one class.
> > >> Can you tell us the classes and their values that
> > >> you chose for the
> > >> particular image you attached to your email?
> > >> In regard to the use of other basis functions: It
> > is
> > >> not necessary to
> > >> use Legendre polynomials for the bias correction,
> > >> any set of basis
> > >> functions should theoretically be applicable.
> > >> Although I would suggest
> > >> if you try a different set of basis functions,
> > just
> > >> make sure to use
> > >> orthogonal ones (orthonormal would be even
> > better,
> > >> Btw, the Legendre
> > >> polynomials are orthogonal and not orthonormal).
> > >>
> > >> When browsing through the itk-class description,
> > I
> > >> saw that the
> > >> inter-slice brightness correction is applied by
> > >> default. In general,
> > >> this is actually not necessary (only for older
> > MRI's
> > >> it should be
> > >> necessary to do this). So, maybe turning off the
> > >> inter-slice correction
> > >> could help.
> > >>
> > >> Btw, since I am not at UNC anymore: can someone
> > >> update the links to the
> > >> papers in the doxygen documentation?
> > >> for the TMI paper:
> > >>
> > >
> >
> http://www.cs.unc.edu/~gerig/publications/TMI00-Styner-Bias.pdf
> > >> for the TR:
> > >>
> > >
> >
> http://www.vision.ee.ethz.ch/db_queries/get_abstract.cgi?techreps:Styner97a
> > >>
> > >> One more question for Jinsung: Is the itk
> > >> implementation using
> > >> sub-sampling for the energy-computation? If so,
> > >> which sub-sampling is it
> > >> using. I think, it would be good if one could
> > >> actually adjust the
> > >> subsampling factor (in order to speed up the
> > >> computation). Otherwise, I
> > >> think you did a great job with this itk-class.
> > >>
> > >> Regards
> > >> Martin
> > >>
> > >>
> > >> Jisung Kim wrote:
> > >>>>> Hi there,
> > >>>>
> > >>>
> > >>> Hi. I'm the person who ported the algorithm to
> > >> ITK.
> > >>> Martin Styner would know much better than me.
> > >> However,
> > >>> I will try to answer your questions.
> > >>>
> > >>>
> > >>>>> I am using the MRIBiasFieldCorrectionFilter to
> > >>>>> correct the bias field of a MRI
> > >>>>> surface coil (see attached image).
> > >>>>
> > >>>
> > >>>>> The class itself works fine, I am able to
> > input
> > >> and
> > >>>>> output all the
> > >>>>> parameters,the image and the masks.
> > >>>>
> > >>>
> > >>>>> However, so far I was not able to obtain a
> > good
> > >>>>> correction. The estimated bias
> > >>>>> field is incorrect. So, I must be doing
> > something
> > >>>>> wrong. (The filter finds
> > >>>>> local minima instead of the global minimum).
> > >>>>
> > >>>
> > >>> It's hard to get a good result when you don't
> > know
> > >>> good initial statistics of the tissue classes.
> > >> Martin
> > >>> Styner suggested in his paper to select a small
> > >> region
> > >>> where pixels of all the tissue classes exist and
> > >> then
> > >>> pick the means of intensities values of tissue
> > >> classes
> > >>> in that region. Selecting the standard
> > deviations
> > >> for
> > >>> the tissue classes is a little bit trickier than
> > >>> selecting means. You can use the
> > >> EnergyTablePlotter
> > >>> utility that will be under the "your ITK binary
> > >>> directory"/bin directory. you can see the usage
> > by
> > >>> typing the command without any commmand line
> > >>> arguments. The utility will print energy values
> > in
> > >> a
> > >>> table format. You can pipe that result to a file
> > >> and
> > 
> === message truncated ===
> 
> 
> =====
> Jisung Kim
> bahrahm@yahoo.com
> 106 Mason Farm Rd.
> 129 Radiology Research Lab., CB# 7515
> Univ. of North Carolina at Chapel Hill
> Chapel Hill, NC 27599-7515
> 
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Tax Center - forms, calculators, tips, more
> http://taxes.yahoo.com/
> _______________________________________________
> Insight-users mailing list
> Insight-users@public.kitware.com
> http://public.kitware.com/mailman/listinfo/insight-users
>