[Insight-users] Gradient anisotropic filter time step?

Natarajan CS csnataraj at gmail.com
Mon Feb 15 18:01:31 EST 2010


Hi Luis,
      sure, sounds like a good plan. I am heading out right now, but
hopefully I should be able to get it done by tomorrow! I will try with time
steps at 1/2^N, 1/2^(N+1), and 1.5/2^N and send out another e-mail.

Cheers,

C.S.N

P.S :- Just in case anyone is interested, the paper is available as a tech
report from Berkeley

http://digitalassets.lib.berkeley.edu/techreports/ucb/text/CSD-88-483.pdf


On Mon, Feb 15, 2010 at 3:58 PM, Luis Ibanez <luis.ibanez at kitware.com>wrote:

> Hi Natarajan,
>
> You are right, the code is actually testing for
>
>                         1/2^(N+1)
>
> not for
>
>                           1/2^(N)
>
> as I incorrectly wrote in my email.
>
>
> This filter is intended to be the implementation of
> the Perona-Malik method, as described in:
>
>  * Pietro Perona and Jalhandra Malik, ``Scale-space and edge detection
> using
>  * anisotropic diffusion,'' IEEE Transactions on Pattern Analysis Machine
>  * Intelligence, vol. 12, pp. 629-639, 1990.
>
>
> I don't have at hand the Perona Malik paper,
> so let's do this:
>
>
> Could you please modify the code locally in your ITK code,
> and run it with a couple of cases, using a timestep that is
> in the range:
>
>                    1/2^(N+1)  <  t  < 1/2^(N)
>
> and let us know if the output looks correct ?
>
> ---
>
> Typically when you use a timestep that is too large, you
> will see intensity artifacts that look like rhomboids in the
> borders of the objects in the image.
>
>
>     Please let us know what you find,
>
>
>            Thanks
>
>
>                  Luis
>
>
> ---------------------------------------------------------------------------
> On Mon, Feb 15, 2010 at 3:34 PM, Natarajan CS <csnataraj at gmail.com> wrote:
> > Hi Luis,
> >      thanks for the quick reply. Nope, I do not believe I have enabled
> this
> > flag. I am confused, I did take a look at the code snippet you suggested
> and
> > figured that time step is <= 1/2^(N+1) not 1/2^N (Judging from line 75
> > and/through 81). In reality I believe this has to be 1/2^N as you
> suggested,
> > at least if the implementation is same as Perona and Malik..
> >
> > just in case my metadata looks as follows :
> >
> > NDims = 3
> > DimSize = 256 256 256
> > ElementType = MET_SHORT
> > ElementDataFile = raw256.raw
> >
> >
> > Again, thanks for the help!
> >
> > Cheers,
> >
> > C.S.N
> >
> >
> >
> > On Mon, Feb 15, 2010 at 2:00 PM, Luis Ibanez <luis.ibanez at kitware.com>
> > wrote:
> >>
> >> Hi Natarajan,
> >>
> >>
> >>
> >>                      "Glimpsing at the Source, leaves no doubt"
> >>
> >>
> >> This is what the file:
> >>
> >>
> Insight/Code/BasicFilters/itkAnisotropicDiffusionImageFilter.txx
> >>
> >> has in lines 75-82:
> >>
> >>
> >>  if ( m_TimeStep >  (minSpacing / vcl_pow(2.0,
> >> static_cast<double>(ImageDimension) + 1))  )
> >>    {
> >>    //    f->SetTimeStep(1.0 / vcl_pow(2.0,
> >> static_cast<double>(ImageDimension)));
> >>    itkWarningMacro( << "Anisotropic diffusion unstable time step: "
> >>                     << m_TimeStep << std::endl
> >>                     << "Stable time step for this image must be smaller
> >> than "
> >>                     << minSpacing / vcl_pow(2.0,
> >> static_cast<double>(ImageDimension+1)));
> >>    }
> >>
> >>
> >> In summary:
> >>
> >>                    Timestep    <     pixelSpacing  /  ( 2^N )
> >>
> >> where N is the image dimension (e.g. 3 for 3D images, and 2 for 2D
> >> images).
> >>
> >>
> >>
> >>
> >> Did you enable the flag:
> >>
> >>               UseImageSpacing  ?
> >>
> >> If so, what is the pixel spacing of your image ?
> >>
> >>
> >>      Regards,
> >>
> >>
> >>
> >>            Luis
> >>
> >>
> >> -------------------------------------------
> >> On Mon, Feb 15, 2010 at 12:27 PM, Natarajan CS <csnataraj at gmail.com>
> >> wrote:
> >> > Hello all,
> >> >       Not sure if this is a bug or a implementation detail I am
> >> > overlooking,
> >> > I am tending towards the latter, so any info would be helpful !
> >> >  I get  the following warning from the
> >> > GradientAnisotropicDiffusionImageFilter (The filter is being applied
> to
> >> > a
> >> > 256^3 dataset of type short)
> >> >
> >> > WARNING: In
> >> >
> >> >
> /hpc/soft/natac0/itk/include/InsightToolkit/BasicFilters/itkAnisotropicDiffusionImageFilter.txx,
> >> > line 78
> >> > GradientAnisotropicDiffusionImageFilter (0xbc4120): Anisotropic
> >> > diffusion
> >> > unstable time step: 0.07
> >> > Stable time step for this image must be smaller than 0.0625
> >> >
> >> > i was under the impression that the ITK implimentation was a explicit
> >> > method
> >> > with the time step requirement for 3D images is <= 1/8 and <= 1/4 for
> >> > 2D. Am
> >> > i completely off-track here?
> >> >
> >> > Appreciate any help!
> >> >
> >> > Thanks,
> >> >
> >> > C.S.N
> >> >
> >> > _____________________________________
> >> > Powered by www.kitware.com
> >> >
> >> > Visit other Kitware open-source projects at
> >> > http://www.kitware.com/opensource/opensource.html
> >> >
> >> > Kitware offers ITK Training Courses, for more information visit:
> >> > http://www.kitware.com/products/protraining.html
> >> >
> >> > Please keep messages on-topic and check the ITK FAQ at:
> >> > http://www.itk.org/Wiki/ITK_FAQ
> >> >
> >> > Follow this link to subscribe/unsubscribe:
> >> > http://www.itk.org/mailman/listinfo/insight-users
> >> >
> >> >
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20100215/8177c7b0/attachment.htm>


More information about the Insight-users mailing list