Hi everyone,
i'm trying to use vxl to solve a minimization problem using vxl. However
I found myself a bit lost when I started to model the f function needed to
pass to LevenbergMarquardt. Let me explain it in a bette way, what I'm
trying to do is to minimize the reprojection error of 3D points once I
established a 2D3D correspondence, I mean:
r_t =3D sum  m_i  R(P, M_i) ^2
where the m_i are 2D points and the function R is a function that project=
s
the M_i points using the matrix P. What I would like to do is to improve my
estimation of matrix P once I know m_i and M_i. How can I do that using VXL=
?
I'm assuming everything I need to do to use VXL Levenbergmarquardt
implementation is to define a structure that provides an overloading of the
f function. My first approach for my problem was to fill the y vector with
the result of the application of the function i'm trying to minimize, I
mean:
void f(vnl_vector<double> const& x, vnl_vector<double>& y){
// I construct a matrix P using the vector x
for(int i =3D 0; i < m_i.size(); i++){
y[2*i] =3D (m_i  R(P, M_i))[0];
y[2*i + 1] =3D (m_i  R(P, M_i))[1];
}
}
As you can see, what I'm trying to minimize here is the values of my matri=
x
P, but I'm not pretty sure my approach is correct. I would really appreciat=
e
if you can give me a hand on it, some book or paper, anything would be fine=
.
Thank you.

Eduardo Louren=E7o Apolin=E1rio
Federal University of Pernambuco, Brazil
Multimedia and Virtual Reality Research Group
