[Insight-users] Gradient anisotropic filter time step?

Luis Ibanez luis.ibanez at kitware.com
Mon Feb 15 16:58:15 EST 2010


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


More information about the Insight-users mailing list