[Insight-users] Gradient of Vector Image

Luis Ibanez luis . ibanez at kitware . com
Tue, 07 Oct 2003 18:23:32 -0400


Hi Jian,

It will not be easy, but it will be fun  :-)


1) Create an ImageAdaptor that will
    extract the components of the Offset
    and present it as a scalar image.

    follow the example in the SoftwareGuide
    http://www . itk . org/ItkSoftwareGuide . pdf
    Section 12.3, pdf-page 526, paper-page 500.

2) Instantiate three of these ImageAdaptors and
    set them to extract the components {0,1,2}
    of the Offset respectively.

3) Instantiate three GradientRecursiveImageFilters
    and connect each one to one of the ImageAdaptors.

4) When you execute these three image filters
    you will get as output of each one, the values
    along the ROWS of the Jacobian matrix of the Offset.

5) Take a deep breath and decide how do you want
    to represent this in an image. For example as
    an image of pixel type = itkMatrix<double3,3>  ?
    or as a vector with 9 elements ?
    or as 9 parallel scalar images ?

6) Once you decide about the final representation,
    you have basically two options for moving the
    jacobian elements into your representation


   6A) Use an ImageIterator loop for visiting the output
       of the three GradientGaussianRecursiveImageFilters
       and copy the elements into your final Jacobian image.


   6B) Use the JoinImage filter

http://www . itk . org/Insight/Doxygen/html/classitk_1_1JoinImageFilter . html

     that will concatenate the elements of the vector
     images produced by each Gradient vector.  Since
     this filter only have two inputs, you will have to
     use two of them. Join first two of the Jacobian
     rows to get a 6D vector, and then join the third
     row to get a 9D vector.





   Regards,



    Luis



-----------------
Bing Jian wrote:
> Suppose I have a VectorDistanceMap image, the pixel type
> is Offset<3>, say <u(x,y,z),v(x,y,z),w(x,y,z)>. How do I
> get the Jacobian of Offset?
> 
>     du/dx  du/dy  du/dz
>     dv/dx  dv/dy  dv/dz
>     dw/dx  dw/dy  dw/dz
> 
> Thanks!
> 
>