[Insight-developers] Image Orientation Progress(2) : MetaProgramming

Luis Ibanez luis.ibanez at kitware.com
Sat Mar 12 23:26:23 EST 2005


Bill,

Given the performance concern of the Index-Physical point conversion,
it may be interesting to look at implementing these methods using
recursive templates (aka MetaProgramming).

We may be able to to this if we manage to avoid any partial specialization.

I just put a proposal in the Wiki with a draft code of a Helper class
that could implement the recursion.

http://www.itk.org/Wiki/Proposals:Orientation#Recursive_Templates_for_fast_computation_of_Index-Point_transform

The helper class could be called from the itk::Image.

This will have the advantage of

1) inlining the conversions
2) unrolling the for-loop, therefore saving an "if"

somehow (2) is related to (1), since some compliers will
refuse to inline functions that contain for loops.

For a couple of links on MetaProgramming:

http://www.boost-consulting.com/metaprogramming-book.html
http://www.awprofessional.com/bookstore/product.asp?isbn=0321227255&rl=1#
http://www.amazon.com/exec/obidos/tg/detail/-/0321227255/qid=1110687865/sr=8-1/ref=pd_csp_1/104-1336514-6670359?v=glance&s=books&n=507846

http://en.wikipedia.org/wiki/Template_metaprogramming



The same techniques should be applicable to the
Vector X Matrix computation that are needed for
the general ImageOrientation support, as well as
the computations of the Tensor pixel type.



    Luis



---------------------------------------
Lorensen, William E (Research) wrote:

> Folks,
> Some more progress on the image orientation upgrade.
> 
> I have been worried about performance of the PhysicalPointToIndex and other related transformations in itkImage. I have created a subclass of image called itkOrientedImage that uses the direction cosines to convert between physical space and vice versa. itkImageBase still keeps the direction cosines but does not use them for conversion between physical and index spaces. The only perfomance hit for Imnage may come from making the transformation methods virtual.
> 
> (I know Stephen, this is deja vu all over again when we first did image.)
> 
> This compromise will permit applications to treat the orientation if desired while allowing other apps to trade-off performance if all images are of the same ilk.
> 
> I am still doing this in my local checkout. I'd appreciate comments.
> 
> Bill
> _______________________________________________
> Insight-developers mailing list
> Insight-developers at itk.org
> http://www.itk.org/mailman/listinfo/insight-developers
> 
> 





More information about the Insight-developers mailing list