[Insight-developers] Using ConstantPadImageFilter on vector
images
Luis Ibanez
ibanez@choroid.cs.unc.edu
Fri, 28 Dec 2001 11:45:45 -0500 (EST)
Hi Lydia,
I tried the following in Linux and seems to work ok.
It remains to be seen how it will behave in other
platform.
1) Change NumericTraits<>::Zero from being a static
var to be a static function NumericTraits<>::Zero();
2) in NumericTraits add a generic trait for Vector, but
templated over Type and Dimension. Like:
template <class Type, unsigned int Dimension>
class NumericTraits< Vector<Type, Dimension> > :
public ITK_NUMERIC_LIMITS< Vector<Type, Dimension> > {
public:
typedef Vector< Type, Dimension > VectorType;
typedef VectorType ValueType;
typedef VectorType AbsType;
typedef VectorType AccumulateType;
static VectorType Zero( void ) { VectorType t; t.Fill(0); return t; }
//.... etc
};
3) use it as :
VectorType ll;
ll = itk::NumericTraits< VectorType >::Zero();
One of the drawbacks of using a static function instead
of a static variable is that it will be slower for simple
basic types like: int, char...
A Similar change will have to be applied to NumericTraits<>::One
to convert it into: NumericTraits<>::One();
Luis
=====================
On Thu, 27 Dec 2001, Lydia Ng wrote:
> Hi All,
>
> I would like to use ConstantPadImageFilter
> on vector images (i.e. where the image pixel is
> of type itk::Vector<someScalar,vectorDimension>).
>
> The existing implementation does not work because as
> it requires the used of NumericsTraits<PixelType>::Zero
> to initialize the padding value to "zero".
> Currently, NumericsTraits for itk::Vector's are not defined.
>
> I am not sure how to go about defining a generic
> NumericsTraits for Vector. Does one have to explicitly
> specialize NumericsTraits for every combination
> of *someScalar* and *vectorDimension*?
>
> My other option is to create a vector version
> of the filter (i.e. a VectorConstantPadImageFilter) but
> that seems to be an awful lot of code duplication.
>
> Any suggestions?
>
> Cheers,
> Lydia
>
>
>
>
> _______________________________________________
> Insight-developers mailing list
> Insight-developers@public.kitware.com
> http://public.kitware.com/mailman/listinfo/insight-developers
>
--
Luis Ibanez CB#: 7060
Research Assistan Professor phone: (919) 843 5436
Division of Neurosurgery fax: (919) 966 6627
University of North Carolina at Chapel Hill email: ibanez@cs.unc.edu
Chapel Hill, NC 27599-7060 http://www.cs.unc.edu/~ibanez