[Insight-users] absolute value : and new filters for complex images

Jakub Bican jakub.bican at matfyz.cz
Fri May 27 03:33:50 EDT 2005


Hi Luis,

thanks, this will be good solution. I need all the filters, so i can implement
them next week.

But, isn't that problem, that there are implemented these classes in ITK: ?
ComplexToImaginary (itk::Function) 
ComplexToImaginaryImageAdaptor (itk)
ComplexToImaginaryImageFilter (itk)
ComplexToImaginaryPixelAccessor (itk::Accessor)
ComplexToReal (itk::Function)
ComplexToRealImageAdaptor (itk)
ComplexToRealImageFilter (itk)
ComplexToRealPixelAccessor (itk::Accessor)   

Wouldn't it be better to implement rather ComplexToModulusXXX and
ComplexToPhasorXXX classes??


Regards,
Jakub



---------- Original Message -----------
From: Luis Ibanez <luis.ibanez at kitware.com>
To: Jakub Bican <jakub.bican at matfyz.cz>
Cc: "Miller, James V (Research)" <millerjv at crd.ge.com>, insight-users at itk.org
Sent: Thu, 26 May 2005 12:44:26 -0400
Subject: Re: [Insight-users] absolute value : and new filters for complex images

> Hi Jakub,
> 
> I would suggest that we create a "Modulus" filter
> that will call the function abs().  Modulus is
> probably a more formal name for the computation
> that you are intending to apply on the complex
> numbers.
> 
> http://mathworld.wolfram.com/ComplexNumber.html
> 
> The filter will be just a copy/pasted version
> of the AbsImageFilter, renamed as ModulusImageFilter,
> and calling "abs()" instead of using the "if".
> 
> In this way we don't have to compromise the performance
> of the AbsImageFilter.
> 
> By the same token we could add other filters that may
> be useful when dealing with complex numbers.
> 
> For example:
> 
>          itkImaginaryPartImageFilter
>          itkRealPartImageFilter
>          itkPhasorImageFilter
> 
> Please let us know if you find this reasonable,
> 
>     Thanks
> 
>         Luis
> 
> --------------------
> Jakub Bican wrote:
> 
> > OK, i understand that.
> > 
> > So, is there some way to adjust AbsImageFilter to use abs() function for any
> > type, that is not a C++ scalar numeric value? I took a look inside filter's
> > code and i did not found a good solution that will not affect the
> > performance. But, of course, it doesn't mean that it do not exist :))
> > 
> > I prefer to adjust current filter  - once it is a Abs filter templated over
> > types, it would compute absolute value for all types for which is the abs()
> > function defined....
> > 
> > Thanks,
> > 
> >         Jakub
> > 
> > 
> > ----- Original Message ----- 
> > From: "Miller, James V (Research)" <millerjv at crd.ge.com>
> > To: "Jakub Bican" <jakub.bican at matfyz.cz>; <insight-users at itk.org>
> > Sent: Wednesday, May 25, 2005 2:31 PM
> > Subject: RE: [Insight-users] absolute value
> > 
> > 
> > The AbsImageFilter uses this code instead of C++ calls for speed.
> > 
> > MS Windows systems are exceptionally slow at taking an absolute
> > value.  The simple "if" check below is substantially faster on
> > Windows systems.  I can't recall if this is a general Intel
> > processor issue or a MS Windows issue.  If it is an Intel issue,
> > then the "if" version of the code would also be faster on Linux
> > systems.
> > 
> > I would suggest having a separate filter (or path through the
> > AbsImageFilter)
> > for complex<> data.
> > 
> > Jim
> > 
> > 
> > 
> > -----Original Message-----
> > From: insight-users-bounces+millerjv=crd.ge.com at itk.org
> > [mailto:insight-users-bounces+millerjv=crd.ge.com at itk.org]On Behalf Of
> > Jakub Bican
> > Sent: Wednesday, May 25, 2005 3:44 AM
> > To: insight-users at itk.org
> > Subject: Re: [Insight-users] absolute value
> > 
> > 
> > 
> > Hi
> > 
> > i recently wanted to use AbsImageFilter and i found out, that it is not
> > using standard C++ abs() function (and overloads), but does something like
> > this:
> > if (A<0)
> >     return -1*A;
> > else
> >     return A;
> > 
> > This is a big problem with e.g. complex<> values! So, Isabelle, be aware of
> > the AbsImageFilter!
> > 
> > ITK team> should be AbsImageFilter changed to use standard abs() function
> > and it's overloads, please? Or is there any reason why it is not so?
> > 
> > Thanks,
> > Jakub
> > 
> > 
> > ----- Original Message ----- 
> > From: "Gavin Baker" <gavinb+xtk at cs.mu.OZ.AU>
> > To: "Renaud Isabelle" <renauisa at yahoo.fr>
> > Cc: "insight-users" <insight-users at itk.org>
> > Sent: Wednesday, May 25, 2005 8:49 AM
> > Subject: Re: [Insight-users] absolute value and Hilbert transform
> > 
> > 
> > 
> >>Bonjour Isabelle,
> >>
> >>On Tue, May 24, 2005 at 07:43:21PM +0200, Renaud Isabelle wrote:
> >>
> >>
> >>>I am working on RF images. In order to visualize these ones, I have
> >>>to compute the absolute value of the image and then rescale image
> >>>data.
> >>>
> >>>I am wondering if there is already an ITK function adapted to
> >>>calculate the absolute value of an image. Or should I use abs()
> >>>function of math library in C?
> >>
> >>Yes, ITK has a filter to calculate the absolute value per-pixel.  It
> >>is one of many unary functors, as described here:
> >>
> >>  http://www.itk.org/Doxygen/html/classitk_1_1AbsImageFilter.html
> >>
> >>You may also be interested in these filters (for the rescaling):
> >>
> >>
> > 
> > http://www.itk.org/Doxygen/html/classitk_1_1RescaleIntensityImageFilter.html
> > 
> >>  http://www.itk.org/Doxygen/html/classitk_1_1ShiftScaleImageFilter.html
> >>
> > 
> > http://www.itk.org/Doxygen/html/classitk_1_1IntensityWindowingImageFilter.html
> > 
> >>>In future, I would have to transform RF images in B-mode images for
> >>>a better visualization. This is by computing the absolute value of
> >>>the Hilbert transform of RF image data. Is it also an ITK Hilbert
> >>>transform already computed?
> >>
> >>ITK doesn't currently provide such a filter (AFAIK).  The Software
> >>Guide has a section on writing new filters, and you should be able to
> >>base your new filter on an existing filter (most likely starting with
> >>ImageToImageFilter).  The VNL library has quite a comprehensive matrix
> >>math library, which should provide what you need for the implementation.
> >>
> >>Good luck,
> >>
> >>  :: Gavin
> >>
> >>-- 
> >>Gavin Baker                                      Complex Systems Group
> >>http://www.cs.mu.oz.au/~gavinb             The University of Melbourne
> >>_______________________________________________
> >>Insight-users mailing list
> >>Insight-users at itk.org
> >>http://www.itk.org/mailman/listinfo/insight-users
> >>
> > 
> > 
> > _______________________________________________
> > Insight-users mailing list
> > Insight-users at itk.org
> > http://www.itk.org/mailman/listinfo/insight-users
> > 
> > _______________________________________________
> > Insight-users mailing list
> > Insight-users at itk.org
> > http://www.itk.org/mailman/listinfo/insight-users
> > 
> >
------- End of Original Message -------



More information about the Insight-users mailing list