[Insight-developers] vectorimage linear interpolation

Jim Miller millerjv at ge.com
Fri Mar 11 10:22:01 EST 2011


Brian, 

There is a ZeroValue() function in NumericTraits.  Can you utilize that?

Jim

On Mar 11, 2011, at 9:05 AM, brian avants wrote:

> hi everyone
> 
> i'm putting together a registration metric for VectorImages and the
> code reuse from the scalar image metric is very high.  which is great.
>  except there is a small hang up with the
> LinearInterpolateImageFunction.
> 
> i am defining:
> 
>  typedef itk::VectorImage< float,ImageDimension > ImageType;
> 
> and
> 
>  typedef LinearInterpolateImageFunction< FixedImageType,
> CoordinateRepresentationType > FixedInterpolatorType;
> 
> relevant code from that function is:
> 
>  /**
>   * Interpolated value is the weighted sum of each of the surrounding
>   * neighbors. The weight for each neighbor is the fraction overlap
>   * of the neighbor pixel with respect to a pixel centered on point.
>   */
> RealType value= NumericTraits< RealType >::Zero;
> 
> so, if i compile with the original code in place, i get this error :
> 
> itkLinearInterpolateImageFunction.txx:89: error: invalid conversion
> from ‘const itk::VariableLengthVector<double> (*)(const
> itk::VariableLengthVector<double>&)’ to ‘unsigned int’
> /Users/brianavants/code/ITKv4/ITK/Code/Common/itkLinearInterpolateImageFunction.txx:89:
> error:   initializing argument 1 of
> ‘itk::VariableLengthVector<TValueType>::VariableLengthVector(unsigned
> int) [with TValueType = double]’
> 
> the Zero function is defined in
> Common/itkNumericTraitsVariableLengthVectorPixel.h
> 
> if i replace
> 
>  RealType value= NumericTraits< RealType >::Zero;
> 
> with
> 
>  RealType value; value.Fill(0);
> 
> then all is well for the VectorImage case but this does not work
> (obviously) in the scalar image case.   so, it's this one line / one
> definition that is causing the hang up.  i am hoping someone with more
> familiarity with NumericTraits might point me to the right solution
> i.e. the solution that would let me use the
> LinearInterpolateImageFunction in this context.
> 
> for reference, the variable length vector Zero implementation:
> 
>  static const Self Zero(const Self  & a)
>  {
>    Self b( a.Size() );
>    b.Fill(NumericTraits< T >::Zero);
>    return b;
>  }
> 
> from Common/itkNumericTraitsVariableLengthVectorPixel.h .... any help
> is appreciated.
> 
> brian
> _______________________________________________
> 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://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-developers

Jim Miller
Senior Scientist
GE Research 
Interventional and Therapy

GE imagination at work

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20110311/e57d9db7/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3108 bytes
Desc: not available
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20110311/e57d9db7/attachment.bin>


More information about the Insight-developers mailing list