[Insight-users] Gradient of Vector Image
Bing Jian
bjian at cise . ufl . edu
Tue, 7 Oct 2003 20:02:33 -0400 (EDT)
Thanks Luis. I will try to implement such jacobian filter
using ITK. Your suggestion is very helpful.
--
Best wishes,
Bing Jian
bjian at cise . ufl . edu
On Tue, 7 Oct 2003, Luis Ibanez wrote:
>
> 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!
> >
> >
>
>
>
>
>