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

Jisung Kim bahrahm@yahoo.com
Fri, 28 Feb 2003 06:59:42 -0800 (PST)


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/