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

Jisung Kim bahrahm@yahoo.com
Thu, 20 Feb 2003 09:26:27 -0800 (PST)


>>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
view energy function plot using mathematical packages
such as GNU R or matlab. The plot shows a good
separation between tissue class means. If you increase
the standard deviations, the the picks between tissue
class means would be lower. You want the picks are
higher than 0.5 (in energy value).

>>Could anybody suggest good values for cshrink,
>>cgrow, x0 as well as the 
>>coefficients for the legendre polynoms? I tried
>>without success the parameter 
>>value ranges suggested in the references.

I think if you have good statistics of tissue classes,
then you might get a reasonable result without
changing the shrink factors. However, if you want to
the optimization scheme works in a finer scales, use
smaller values.

>>Does anybody have experience with this filter?

>>Is it possible to use a basis set other than the
>>Legendre Polynoms (i.e. 
>>Gaussians?)

I am not sure whether current implementaion of the
filter works with basis functions other than Legendre
Plynoms. However, since the ITK optimization framework
expects a class that has the interfaces defined by the
SingleValuedCostFunction, it wouldn't be hard to use
other base functions. I might have to double check it
and change a little bit.

Thanks,

>>It would be a pity if this elegant correction
>>algorithm only worked for the 
>>examples given in the two references ....

>>Thanks

>>Christof

>>Christof Karmonik, PhD
>>Baylor College of Medicine/The Methodist Hospital
>>Mailstation M217
>>6565 Fannin
>>Houston, TX 77030
>>Pager: (713) 708-2232
>>Fax: (713) 790-4688

=====
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/