- #1
lupine
- 1
- 0
I'm trying to implement and extend the work of Emmanuel Prados (http://www-sop.inria.fr/odyssee/research/prados-faugeras:04b/thesis.htm). I'm trying to follow how Appendix A, "How to transform a convex Hamiltonian into a HJB Hamiltonian; Legendre Transform", works for the provided example. I've contacted the author, but thought I might try here and see if anybody else could help me out in the meantime/
Given a Hamiltonian of the form
[tex]H_{R/T}^{orth}(x,p) = I(x) \sqrt{1+|p|^{2}} + p \cdot l - \gamma[/tex]
we can apparently use the Legendre transform to obtain
[tex]H_{R/T}^{orth*} = -\sqrt{I(x)^2 - |a-l|^2}+\gamma \qquad x\in\overline{B}(1,I(x))[/tex]
The process given for this transform is:
Here, p is a two-element vector (corresponding to the gradient of the surface [tex]p = \nabla u(x)[/tex], I(x) is the image intensity at pixel x, l is a two-element vector corresponding to the light source direction (constant), and gamma is a further light constant.
Finding the gradient seems pretty simple -- plug in the equation into any CAS package gives:
[tex]\frac{dH}{dp}=\dot{H}(p) = \left[ \left( \frac{I(x) p_x}{\sqrt{1+p_{x}^{2}+p_{y}^{2}}} + l_x \right), \left( \frac{I(x) p_y}{\sqrt{1+p_{x}^{2}+p_{y}^{2}}} + l_y \right)\right][/tex]
The next step, solving [tex]\nabla_p H(p_0)=0[/tex], is where I start coming undone. Since we now effectively have two unknowns, if we then substitute [tex]p_0=\left(p_{0_x},p_{0_y}\right)[/tex] for p, when solving for [tex]p_0[/tex], the variables will not be independent between the two components.
This is really confusing me, and I hope I've made it straight-forward enough for others to read and understand.
Thanks
Lupine
Given a Hamiltonian of the form
[tex]H_{R/T}^{orth}(x,p) = I(x) \sqrt{1+|p|^{2}} + p \cdot l - \gamma[/tex]
we can apparently use the Legendre transform to obtain
[tex]H_{R/T}^{orth*} = -\sqrt{I(x)^2 - |a-l|^2}+\gamma \qquad x\in\overline{B}(1,I(x))[/tex]
The process given for this transform is:
- Find the gradient [tex]\nabla_p H[/tex]
- Solve the equation [tex]\nabla_p H(p_0)=0[/tex] ([tex]p_0[/tex] depends on x)
- Calculate [tex]H(x,p_0)[/tex]
Here, p is a two-element vector (corresponding to the gradient of the surface [tex]p = \nabla u(x)[/tex], I(x) is the image intensity at pixel x, l is a two-element vector corresponding to the light source direction (constant), and gamma is a further light constant.
Finding the gradient seems pretty simple -- plug in the equation into any CAS package gives:
[tex]\frac{dH}{dp}=\dot{H}(p) = \left[ \left( \frac{I(x) p_x}{\sqrt{1+p_{x}^{2}+p_{y}^{2}}} + l_x \right), \left( \frac{I(x) p_y}{\sqrt{1+p_{x}^{2}+p_{y}^{2}}} + l_y \right)\right][/tex]
The next step, solving [tex]\nabla_p H(p_0)=0[/tex], is where I start coming undone. Since we now effectively have two unknowns, if we then substitute [tex]p_0=\left(p_{0_x},p_{0_y}\right)[/tex] for p, when solving for [tex]p_0[/tex], the variables will not be independent between the two components.
This is really confusing me, and I hope I've made it straight-forward enough for others to read and understand.
Thanks
Lupine