You can subscribe to this list here.
2001 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}
(8) 
_{Nov}
(8) 
_{Dec}
(4) 

2002 
_{Jan}
(53) 
_{Feb}
(15) 
_{Mar}
(51) 
_{Apr}
(54) 
_{May}
(41) 
_{Jun}
(48) 
_{Jul}
(32) 
_{Aug}
(22) 
_{Sep}
(61) 
_{Oct}
(31) 
_{Nov}
(31) 
_{Dec}
(27) 
2003 
_{Jan}
(45) 
_{Feb}
(18) 
_{Mar}
(25) 
_{Apr}
(39) 
_{May}
(34) 
_{Jun}
(20) 
_{Jul}
(13) 
_{Aug}
(16) 
_{Sep}
(18) 
_{Oct}
(14) 
_{Nov}
(17) 
_{Dec}
(13) 
2004 
_{Jan}
(53) 
_{Feb}
(12) 
_{Mar}
(38) 
_{Apr}
(29) 
_{May}
(72) 
_{Jun}
(38) 
_{Jul}
(41) 
_{Aug}
(11) 
_{Sep}
(21) 
_{Oct}
(30) 
_{Nov}
(35) 
_{Dec}
(14) 
2005 
_{Jan}
(66) 
_{Feb}
(14) 
_{Mar}
(24) 
_{Apr}
(50) 
_{May}
(40) 
_{Jun}
(29) 
_{Jul}
(37) 
_{Aug}
(27) 
_{Sep}
(26) 
_{Oct}
(58) 
_{Nov}
(43) 
_{Dec}
(23) 
2006 
_{Jan}
(84) 
_{Feb}
(36) 
_{Mar}
(24) 
_{Apr}
(42) 
_{May}
(20) 
_{Jun}
(41) 
_{Jul}
(40) 
_{Aug}
(42) 
_{Sep}
(23) 
_{Oct}
(38) 
_{Nov}
(31) 
_{Dec}
(28) 
2007 
_{Jan}
(11) 
_{Feb}
(34) 
_{Mar}
(14) 
_{Apr}
(29) 
_{May}
(45) 
_{Jun}
(5) 
_{Jul}
(10) 
_{Aug}
(6) 
_{Sep}
(38) 
_{Oct}
(44) 
_{Nov}
(19) 
_{Dec}
(22) 
2008 
_{Jan}
(37) 
_{Feb}
(24) 
_{Mar}
(29) 
_{Apr}
(14) 
_{May}
(24) 
_{Jun}
(47) 
_{Jul}
(26) 
_{Aug}
(4) 
_{Sep}
(14) 
_{Oct}
(45) 
_{Nov}
(25) 
_{Dec}
(16) 
2009 
_{Jan}
(33) 
_{Feb}
(34) 
_{Mar}
(45) 
_{Apr}
(45) 
_{May}
(30) 
_{Jun}
(47) 
_{Jul}
(37) 
_{Aug}
(19) 
_{Sep}
(15) 
_{Oct}
(16) 
_{Nov}
(24) 
_{Dec}
(31) 
2010 
_{Jan}
(32) 
_{Feb}
(25) 
_{Mar}
(12) 
_{Apr}
(5) 
_{May}
(2) 
_{Jun}
(9) 
_{Jul}
(31) 
_{Aug}
(10) 
_{Sep}
(12) 
_{Oct}
(20) 
_{Nov}
(6) 
_{Dec}
(41) 
2011 
_{Jan}
(23) 
_{Feb}
(8) 
_{Mar}
(41) 
_{Apr}
(8) 
_{May}
(15) 
_{Jun}
(10) 
_{Jul}
(8) 
_{Aug}
(14) 
_{Sep}
(16) 
_{Oct}
(13) 
_{Nov}
(15) 
_{Dec}
(8) 
2012 
_{Jan}
(6) 
_{Feb}
(14) 
_{Mar}
(22) 
_{Apr}
(40) 
_{May}
(27) 
_{Jun}
(18) 
_{Jul}
(2) 
_{Aug}
(6) 
_{Sep}
(10) 
_{Oct}
(32) 
_{Nov}
(5) 
_{Dec}
(2) 
2013 
_{Jan}
(14) 
_{Feb}
(2) 
_{Mar}
(15) 
_{Apr}
(2) 
_{May}
(6) 
_{Jun}
(7) 
_{Jul}
(25) 
_{Aug}
(6) 
_{Sep}
(3) 
_{Oct}

_{Nov}
(8) 
_{Dec}

2014 
_{Jan}
(3) 
_{Feb}
(3) 
_{Mar}
(3) 
_{Apr}

_{May}
(19) 
_{Jun}
(6) 
_{Jul}
(1) 
_{Aug}
(4) 
_{Sep}
(18) 
_{Oct}
(5) 
_{Nov}
(1) 
_{Dec}

2015 
_{Jan}
(2) 
_{Feb}
(4) 
_{Mar}
(2) 
_{Apr}
(1) 
_{May}
(17) 
_{Jun}
(1) 
_{Jul}

_{Aug}
(2) 
_{Sep}

_{Oct}

_{Nov}

_{Dec}

S  M  T  W  T  F  S 



1
(5) 
2

3
(1) 
4
(1) 
5

6

7

8
(2) 
9

10
(1) 
11

12

13

14
(4) 
15
(4) 
16
(3) 
17
(2) 
18
(8) 
19
(7) 
20

21
(4) 
22

23

24
(1) 
25

26

27

28

29
(1) 
30
(1) 
31



From: Mathieu Malaterre <mathieu.malaterre@gm...>  20070516 16:09:06

Hi there, Alright, I think I finally understood how to use the vnl_levenberg_marquardt API to solve my problem. I am trying to fit a model function: a * ( 1.  b * exp( t / c ) ) to a set of 8 discretized signal values (so far nothing exceptional). Here is how I formulated my problem (*). It works quite well when I am *NOT* using the gradient (gradf virtual function). But it behaves incorrectly when I start using it. Could someone please comment on my code, and let me know if there is an obvious error ? thanks for your help, Mathieu PS: Included is a function test_deriv, I was trying to check that the value of my algebraic version of derivatives were consistant with finite difference and AFAIK it is. (*) #include <vnl/vnl_double_3.h> #include <vnl/vnl_least_squares_function.h> #include <vnl/algo/vnl_levenberg_marquardt.h> #include <iostream> static const double signal[] = { 13.5942, 10.2358, 7.54658, 5.39323, 3.66897, 2.28828, 1.18272, 0.297451, }; struct vnl_rosenbrock : public vnl_least_squares_function { static const unsigned int nsignals = sizeof (signal) / sizeof (double); vnl_rosenbrock(bool with_grad): vnl_least_squares_function(3, nsignals, with_grad ? use_gradient : no_gradient) {} // helpers: static double compute(double t, double a, double b, double c) { return a * ( 1.  b * exp( t / c ) ); } static double compute_a(double t, double a, double b, double c) { return ( 1.  b * exp( t / c) ); } static double compute_b(double t, double a, double b, double c) { return a * exp( t / c ); } static double compute_c(double t, double a, double b, double c) { return  t * a * b / (c * c) * exp( t / c ); } void f(vnl_vector<double> const& x, vnl_vector<double>& y) { for (unsigned int i=0; i<nsignals; ++i) { y[i] = compute(i, x(0), x(1), x(2) )  signal[i]; } } void gradf(vnl_vector<double> const& x, vnl_matrix<double> &J) { for (unsigned int i=0; i<nsignals; ++i) { J[0][i] = compute_a(i, x(0), x(1), x(2) ); } for (unsigned int i=0; i<nsignals; ++i) { J[1][i] = compute_b(i, x(0), x(1), x(2) ); } for (unsigned int i=0; i<nsignals; ++i) { J[2][i] = compute_c(i, x(0), x(1), x(2) ); } } }; void test_deriv(const int row = 0) { const double valref = 17.1; const double h = 0.1; vnl_rosenbrock f(false); vnl_matrix<double> myj(3,8); vnl_vector<double> myx(3); myx[0] = myx[1] = myx[2] = valref; f.gradf(myx, myj); std::cout << "my:" << myj[0][row] << std::endl; std::cout << "my:" << myj[1][row] << std::endl; std::cout << "my:" << myj[2][row] << std::endl; vnl_vector<double> myf_h1(8); vnl_vector<double> myf_h2(8); double comp[3]; myx[0] = myx[1] = myx[2] = valref; myx[0] = valref  h; f.f(myx, myf_h1); myx[0] = valref + h; f.f(myx, myf_h2); comp[0] = (myf_h2[row]  myf_h1[row]) / (2 * h); myx[0] = myx[1] = myx[2] = valref; myx[1] = valref  h; f.f(myx, myf_h1); myx[1] = valref + h; f.f(myx, myf_h2); comp[1] = (myf_h2[row]  myf_h1[row]) / (2 * h); myx[0] = myx[1] = myx[2] = valref; myx[2] = valref  h; f.f(myx, myf_h1); myx[2] = valref + h; f.f(myx, myf_h2); comp[2] = (myf_h2[row]  myf_h1[row]) / (2 * h); std::cout << "comp:=" << comp[0] << std::endl; std::cout << "comp:=" << comp[1] << std::endl; std::cout << "comp:=" << comp[2] << std::endl; } int main(int, char *[]) { //test_deriv(3); vnl_rosenbrock f(true); vnl_double_3 x0(1.,1.,1.); vnl_levenberg_marquardt lm(f); vnl_vector<double> x1 = x0.as_vector(); if (f.has_gradient()) lm.minimize_using_gradient(x1); else lm.minimize_without_gradient(x1); lm.diagnose_outcome(std::cout); std::cout << "x1 = " << x1 << std::endl; vnl_double_3 solution(3.26, 5.17, 4.5); double err = (x1  solution).magnitude(); std::cout << "err = " << err << std::endl; return 0; } 
From: Ian Scott <ian.scott@st...>  20070516 09:51:59

Mathieu Malaterre wrote: > [Hopefully the subject will not be considered as spam...] > > Hello, > > I am getting this weird error when using the vnl_lbfgs: > > > vnl_lbfgs: n = 3, memory = 5, Workspace = 43[ 0.000328064 MB], > ErrorScale = 1, xnorm = 7.59671 > vnl_lbfgs: 1:1.26056 1:53.808 1:0.24621 1:0.244475 1:0.261946 > 1:0.244681 1:0.244425 1:0.244519 1:0.244421 1:0.244466 1:0.244424 > 1:0.244421 1:0.244421 1:0.244421 1:0.244421 1:0.244421 1:0.244421 > 1:0.244421 1:0.244421 1:0.244421 1:0.244421 1:0.244421 1:0.244421 > vnl_lbfgs: ** EEEK ** > done > IFLAG= 1 LINE SEARCH FAILED. SEE DOCUMENTATION OF ROUTINE MCSRCH > ERROR RETURN OF LINE SEARCH: INFO= 3 POSSIBLE CAUSES: FUNCTION OR > GRADIENT ARE INCORRECT OR INCORRECT TOLERANCES > 3.20458 5.16978 4.68394 > 1 > Evaluations: 22 > > > As far as I understand INFO=3 means that "MORE THAN 20 FUNCTION > EVALUATIONS WERE REQUIRED AT THE PRESENT ITERATION.". Is there a way > to change this default value ? I assume that you have sensible tolerances, etc. It would seem unlikely that increasing the number of iterations in the line search would solve your problem. 20 iterations should be enough to find a minimum in a 1D problem. It is more likely that your function is behaving badly. However, if you dig into the netlib code, you should be able to find the value and change it. Either way, you really need to instrument your cost function. Print out x, f(x) (and f'(x) if you calculate it) at every evaluation. If it really is failing in a linesearch, then the last 20ish evaluations should have colinear values of x. If you plot the line position against f(x) you should be able to tell what it going on. If you are providing f'(x), it would probably also be a good idea to check the value against a forwarddifferences estimate. Ian. 
From: Cem DEMiRKIR <cdemirkir@gm...>  20070515 17:43:56

Hi everyone I'd like to know whether there is any person who succeeded in building vgui library and the examples in MSVS2005 using Qt4. I'd be grateful to anyone who share his/her knowledge to build and use Qt4 with VXL VGUI library. Sincerely Cem DEMiRKIR 
From: <garaguas@gm...>  20070515 17:26:04

Helllo we are trying to meassure the quallity of olives in a production line. We must detect dark spots to determine the number of damaged olives. (here is an example http://www.profesores.frc.utn.edu.ar/electronica/teoriadeloscircuitosi/mate= rial/test.jpg where i've indicated some unaccepted olives) I thought to begin with a segmentation, to perform then an individual processing. Is there an implementation in VXL of such a segmentation function? Thanks in advance Gaston =20  Gast=F3n Aragu=E1s Centro de Investigaci=F3n en Inform=E1tica para la Ingenier=EDa (CIII) Univ. Tecnol=F3gica Nacional Facultad Regional C=F3rdoba. Argentina 
From: Mathieu Malaterre <mathieu.malaterre@gm...>  20070515 17:10:39

[Hopefully the subject will not be considered as spam...] Hello, I am getting this weird error when using the vnl_lbfgs: vnl_lbfgs: n = 3, memory = 5, Workspace = 43[ 0.000328064 MB], ErrorScale = 1, xnorm = 7.59671 vnl_lbfgs: 1:1.26056 1:53.808 1:0.24621 1:0.244475 1:0.261946 1:0.244681 1:0.244425 1:0.244519 1:0.244421 1:0.244466 1:0.244424 1:0.244421 1:0.244421 1:0.244421 1:0.244421 1:0.244421 1:0.244421 1:0.244421 1:0.244421 1:0.244421 1:0.244421 1:0.244421 1:0.244421 vnl_lbfgs: ** EEEK ** done IFLAG= 1 LINE SEARCH FAILED. SEE DOCUMENTATION OF ROUTINE MCSRCH ERROR RETURN OF LINE SEARCH: INFO= 3 POSSIBLE CAUSES: FUNCTION OR GRADIENT ARE INCORRECT OR INCORRECT TOLERANCES 3.20458 5.16978 4.68394 1 Evaluations: 22 As far as I understand INFO=3 means that "MORE THAN 20 FUNCTION EVALUATIONS WERE REQUIRED AT THE PRESENT ITERATION.". Is there a way to change this default value ? Thanks for suggestion,  Mathieu...moving on to the next optimizer: vnl_conjugate_gradient... 
From: Mathieu Malaterre <mathieu.malaterre@gm...>  20070515 12:06:27

Hello, I have a signal (an image 256x256 acquired over 8 time points). I need to fit a function on those values. So for each pixel I need to run an optimizer, with 8 empirical value, and the function is : F(a,b,c) = a * ( 1  b * exp(  t / c ) ) (t = 1..8) As far as I understand I cannot use LevenbergMarquardt implementation in vnl since it imply expressing F(a,b,c) as the sum of 3 square functions. what's the next best option for me ? Thanks,  Mathieu 
From: Brooksby, Glen W \(GE, Research\) <brooksby@cr...>  20070514 15:32:38

vxl\contrib\gel\vdgl\vdgl_interpolator_cubic is the closest I know of. See http://paine.wiau.man.ac.uk/pub/doc_vxl/contrib/gel/vdgl/html/classvdgl_ _interpolator__cubic.html#_details for documentation. Glen Brooksby Original Message From: vxlusersbounces@... [mailto:vxlusersbounces@...] On Behalf Of Amitha Perera Sent: Monday, May 14, 2007 10:41 AM To: XIN LI Cc: VXL users Subject: Re: [Vxlusers] question about cubic spline interpolation [forgot to cc the list.] On Mon 14 May 2007, XIN LI wrote: > Hello everyone,I need to use cubic spline interpolation in my program. > Could you please tell me which vxl class can do cubic spline=20 > interpolation? I'm not sure there is a straightfoward way to get spline interpolation in vxl at the moment. Try searching the documentation: http://paine.wiau.man.ac.uk/pub/doc_vxl/index.html Amitha.   This SF.net email is sponsored by DB2 Express Download DB2 Express C  the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Vxlusers mailing list Vxlusers@... https://lists.sourceforge.net/lists/listinfo/vxlusers 
From: XIN LI <xli16@jh...>  20070514 15:15:00

Amitha, Thank for your reply! I searched the documentation but did not found any appropriate function. Xin  Original Message  From: Amitha Perera <amithaperera@...> Date: Monday, May 14, 2007 10:40 am Subject: Re: [Vxlusers] question about cubic spline interpolation To: XIN LI <xli16@...> Cc: VXL users <vxlusers@...> > [forgot to cc the list.] > > On Mon 14 May 2007, XIN LI wrote: > > Hello everyone,I need to use cubic spline interpolation in my > > program. Could you please tell me which vxl class can do cubic > > spline interpolation? > > I'm not sure there is a straightfoward way to get spline interpolation > in vxl at the moment. > > Try searching the documentation: > > > > > Amitha. 
From: Amitha Perera <amithaperera@us...>  20070514 14:40:49

[forgot to cc the list.] On Mon 14 May 2007, XIN LI wrote: > Hello everyone,I need to use cubic spline interpolation in my > program. Could you please tell me which vxl class can do cubic > spline interpolation? I'm not sure there is a straightfoward way to get spline interpolation in vxl at the moment. Try searching the documentation: http://paine.wiau.man.ac.uk/pub/doc_vxl/index.html Amitha. 
From: XIN LI <xli16@jh...>  20070514 13:53:50

Hello everyone,I need to use cubic spline interpolation in my program. Could you please tell me which vxl class can do cubic spline interpolation?Thanks!Xin 
=   (Apologies for crossposting) Symposium "Computational Methods in Image Analysis" National Congress on Computational Mechanics (USNCCM IX) San Francisco, = CA, USA, July 22  26 2007 = http://www.me.berkeley.edu/compmat/USACM/main.html We would appreciate if you could distribute this information by your colleagues and coworkers. =   Dear Colleague, Within the National Congress on Computational Mechanics (USNCCM IX), to = be held in San Francisco, CA, USA, July 22  26 2007, we are organizing the Symposium "Computational Methods in Image Analysis". Examples of some = topics that will be considered in that symposium are: Image acquisition, Image processing and analysis, Image segmentation, 3D Vision, Motion analysis, Pattern recognition, Objects recognition, Medical imaging and Tools and applications. Due to your research activities in those fields, we would like to invite = you to submit an abstract and participate in the symposium "Computational Methods in Image Analysis". For instructions and submission, please access to the congress website = at: http://www.me.berkeley.edu/compmat/USACM/main.html. Please note, when submitting your abstract you should select "053  Computational Methods in Image Analysis". Important dates:  Deadline for abstract submissions (EXTENDED): May 15, 2007  Final selection of abstracts: May 22, 2007  Deadline for early registration (EXTENDED): June 1, 2007  Deadline for regular registration: July 15, 2007 Kind regards, Jo=E3o Manuel R. S. Tavares Renato Natal Jorge Yongjie Zhang Dinggang Shen (Symposium organizers) 
From: Amitha Perera <amithaperera@us...>  20070508 17:32:38

On Tue 08 May 2007, Christoph John wrote: > I am quite a newbie in vxl programming and I am trying to use a 2*2 > vgui_grid_tableau to display 4 vgui_easy2D_tableaus. When I set the > first image_tableau with the constructor in a easy2D_tableau the > image is displayed fine. You mean that all 4 images are displayed well? Do you have a viewer2D in the hierarchy too? If so, can you pan and zoom in each image? > I am updating the image_tableau sources with new image_resources afterwards. > > vgui_easy2D_tableau easy2D; > > easy2D>get_image_tableau()>set_image_resource(theResource)); > > By doing this with four easy2D views I end up with just flickering > on screen. The context seems to be redrawn all the time. Therfore > my question is, how to update the image resources for an > easy2D_tableau and can it be used in a vgui_grid_tableau like I am > trying. There doesn't seem to be anything wrong offhand. Does the flickering occur when you change a single image? If you change one, do all four go bad? What if, instead of setting via a resource, you do something like vil_image_view<vxl_byte> grey; grey.fill( 128 ); easy2D>get_image_tableau()>set_image_view(grey); Also, does example_poly_tableau work for you? (in vgui/examples). That may be nice small program to debug the issue. Amitha. 
From: Christoph John <Christoph_J<ohn@gm...>  20070508 13:58:34

Hello list, I am quite a newbie in vxl programming and I am trying to use a 2*2 vgui_grid_tableau to display 4 vgui_easy2D_tableaus. When I set the first image_tableau with the constructor in a easy2D_tableau the image is displayed fine. I am updating the image_tableau sources with new image_resources afterwards. vgui_easy2D_tableau easy2D; easy2D>get_image_tableau()>set_image_resource(theResource)); By doing this with four easy2D views I end up with just flickering on screen. The context seems to be redrawn all the time. Therfore my question is, how to update the image resources for an easy2D_tableau and can it be used in a vgui_grid_tableau like I am trying. Thanks for your help Cheers Christoph  "Feel free"  10 GB Mailbox, 100 FreeSMS/Monat ... Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail 
From: Jim Green <jgreen@RobotVision.com>  20070504 17:56:02

I'm building with Visual Studio 2005 and have noticed that Microsoft doesn't provide very good error messages. For example, I had accidently omitted a semicolon after the closing curleybrace at the end of a long class definition in a *.h file and Visual Studio produced a bunch of errors complaining about things in an unrelated vxl cmath.h file, having nothing to do with this error. But it didn't mention it had reached the end of the class definition or the whole *.h file and couldn't find a semicolon. Duhhh. Does anyone know of a good C++ syntax checker that runs under windows that highlights these type typing errors, like the old "lint" under unix for C? Thanks, Jim Green  
From: Julio Pastrana <pastrana@bg...>  20070503 13:29:11

I have found the problem. Thank you guys. The problem was that my system lost the libxidev libxmudev I performed a fullupdate on my sytem. sorry about the trouble. On Thu, 20070426 at 09:12 0400, Amitha Perera wrote: > On Wed 25 Apr 2007, Julio Pastrana wrote: > > I just performed a search and yes .. I have it: > > > > in /usr/lib  link to shared library > > > > I was googleing this problem and I found that I have to add > > the path to the libraries to in to the CMakeCache file > > > > some thing like this: > > > > //Where can the Xi library be found > > GLUT_Xi_LIBRARY:FILEPATH=/usr/X11R6/lib/libXi.so > > > The FindGLUT.cmake in vxl has lines like > > FIND_LIBRARY( GLUT_Xi_LIBRARY Xi > /usr/lib64 > /usr/lib > /usr/local/lib > /usr/openwin/lib > /usr/X11R6/lib > ) > > FIND_LIBRARY( GLUT_Xmu_LIBRARY Xmu > /usr/lib64 > /usr/lib > /usr/local/lib > /usr/openwin/lib > /usr/X11R6/lib > ) > > so it should have automatically found libXmu and libXi in /usr/lib. I > don't know why it was not found in your case. > > Amitha. 
From: Ian Scott <ian.scott@st...>  20070501 16:04:42

Sorry, I forgot to fix some stuff that depends on my libraries. This version looks better. I should also point out that there are probably more efficient implementations. Where I have used this code, the runtime cost of f() dominates the problem. Ian. vnl_matrix<double> forward_differences( my_functor_t& f, // the function vnl_vector<double> x_0, // the central point const vnl_vector<double> &scale) // the measurement scale. { vnl_vector<double> r_0 = f(x_0); unsigned nr = r_0.size(); unsigned nx = x_0.size(); vnl_matrix<double> jacobian(nr, nx); for (unsigned i=0; i<nx; ++i) { vnl_vector<double> x=x_0; x(i) += scale(i); vnl_vector<double> r=f(x); vnl_vector<double> dr = r  r_0; dr /= scale(i); jacobian.set_column(i, dr); } return jacobian; } XIN LI wrote: > Hello, > > Sorry. I should say that I would like to get the jacobian matrix of a vector value function. Just as the traditional definition of Jacobian. > > Could you please tell me how to implement this funcion using VXL library? > > Thank you very much! > > Xin > > > >  Original Message  > From: Ian Scott <ian.m.scott@...> > Date: Tuesday, May 1, 2007 4:15 am > Subject: Re: [Vxlusers] question about jacobian > To: XIN LI <xli16@...> > Cc: VXL users <vxlusers@...> > > >> Li, >> >> This probably isn't what you want to hear but  are you sure you >> understand what you are asking for? >> >> The Jacobian is traditionally defined on a vector function Y=F(X), >> where >> Y in a m element vector and X is an n element vector. >> >> The Jacobian is the matrix of first derivatives of Y, w.r.t. to each >> >> element in X, >> >> dY_i >> J_ij = ____ >> dX_J >> >> (or possibly the transpose  I can't remember) >> >> You can talk about an analogous Jacobian of a matrix, but usually >> after >> defining a flattening of the matrix into a vector, and then defining >> the >> variables against which you want to calculate the derivative. >> >> The are plenty of other meanings of "the Jacobian of a matrix", e.g. >> >> assuming the matrix is a Hessian of F, its square is a rough >> approximation to the Jacobian. >> >> The code to perform these calculations is available in VXL, but not >> as a >> simple class, since the implementation depends on what exactly you >> mean >> by "Jacobian of a matrix" >> >> Ian. >> >> XIN LI wrote: >> > Hello, >> > >> > I am using vxl1.8.0. I would like to get the jacobian of a matrix. >> >> > Could you please tell me which class I should use to get the >> jacobian >> > matrix? >> > >> > Thanks! >> > >> > Xin >> >  This SF.net email is sponsored by DB2 Express Download DB2 Express C  the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Vxlusers mailing list Vxlusers@... https://lists.sourceforge.net/lists/listinfo/vxlusers 
From: Ian Scott <ian.scott@st...>  20070501 15:58:32

This is a simple forwarddifferences Jacobian estimator. I've modified it a little to reduce the required context, so it hasn't been directly tested. You can get better estimates using central or higherorder differences. vnl_matrix<double> forward_differences( my_functor_t& f, // the function vnl_vector<double> x_0, // the central point const vnl_vector<double> &scale) // the measurement scale. { vnl_vector<double> r_0 = f(x_0); unsigned nr = r_0.size(); unsigned nx = x_0.size(); vnl_matrix<double> jacobian(nr, nx); for (unsigned i=0; i<nx; ++i) { vnl_vector<double> x=x_0; x(i) += scale(i); rf_inst.set_x(x); vnl_vector<double> r=rf_inst.calc_residual(); vnl_vector<double> dr = r  r_0; dr /= scale(i); jacobian.set_column(i, dr); } return jacobian; } XIN LI wrote: > Hello, > > Sorry. I should say that I would like to get the jacobian matrix of a vector value function. Just as the traditional definition of Jacobian. > > Could you please tell me how to implement this funcion using VXL library? > > Thank you very much! > > Xin > > > >  Original Message  > From: Ian Scott <ian.m.scott@...> > Date: Tuesday, May 1, 2007 4:15 am > Subject: Re: [Vxlusers] question about jacobian > To: XIN LI <xli16@...> > Cc: VXL users <vxlusers@...> > > >> Li, >> >> This probably isn't what you want to hear but  are you sure you >> understand what you are asking for? >> >> The Jacobian is traditionally defined on a vector function Y=F(X), >> where >> Y in a m element vector and X is an n element vector. >> >> The Jacobian is the matrix of first derivatives of Y, w.r.t. to each >> >> element in X, >> >> dY_i >> J_ij = ____ >> dX_J >> >> (or possibly the transpose  I can't remember) >> >> You can talk about an analogous Jacobian of a matrix, but usually >> after >> defining a flattening of the matrix into a vector, and then defining >> the >> variables against which you want to calculate the derivative. >> >> The are plenty of other meanings of "the Jacobian of a matrix", e.g. >> >> assuming the matrix is a Hessian of F, its square is a rough >> approximation to the Jacobian. >> >> The code to perform these calculations is available in VXL, but not >> as a >> simple class, since the implementation depends on what exactly you >> mean >> by "Jacobian of a matrix" >> >> Ian. >> >> XIN LI wrote: >> > Hello, >> > >> > I am using vxl1.8.0. I would like to get the jacobian of a matrix. >> >> > Could you please tell me which class I should use to get the >> jacobian >> > matrix? >> > >> > Thanks! >> > >> > Xin >> > 
From: Peter Vanroose <peter_vanroose@ya...>  20070501 10:28:29

A logical place to implement the Jacobian of a transformation matrix would be in the class vcsl_matrix. I personally don't think core/vnl would be a good place for this since "vnl_matrix" is not necessarily a transformation matrix, and Jacobians clearly have transformation semantics. Implementations for the Jacobian of several transformations are already in contrib/rpl/rgrl/; see especially the functions proj_jac_wrt_loc() and jacobian_wrt_loc(). Comments? Suggestions? Alternatives?  Peter. __________________________________________________________ Hitta din nästa resa på Yahoo! Shopping. Jämför pris på flygbiljetter och hotellrum här: http://shopping.yahoo.se/b/a/c_169901_resor_biljetter.html 
From: Peter Vanroose <peter_vanroose@ya...>  20070501 09:47:10

Ian Scott wrote: > There are plenty of meanings of "the Jacobian of a matrix" The Jacobian of a (coordinate) transformation is welldefined. And a linear transformation can be represented by a transformation matrix. So most probably that's what is meant by "the Jacobian of a matrix"? (See, e.g., http://math.etsu.edu/MultiCalc/Chap3/Chap35/index.htm) The Jacobian is then itself a transformation matrix representing the (linear) transformation between derivatives (or tangent vectors) in the two coordinate frames.  Peter. __________________________________________________________ Hitta din nästa resa på Yahoo! Shopping. Jämför pris på flygbiljetter och hotellrum här: http://shopping.yahoo.se/b/a/c_169901_resor_biljetter.html 
From: Ian Scott <ian.scott@st...>  20070501 08:15:32

Li, This probably isn't what you want to hear but  are you sure you understand what you are asking for? The Jacobian is traditionally defined on a vector function Y=F(X), where Y in a m element vector and X is an n element vector. The Jacobian is the matrix of first derivatives of Y, w.r.t. to each element in X, dY_i J_ij = ____ dX_J (or possibly the transpose  I can't remember) You can talk about an analogous Jacobian of a matrix, but usually after defining a flattening of the matrix into a vector, and then defining the variables against which you want to calculate the derivative. The are plenty of other meanings of "the Jacobian of a matrix", e.g. assuming the matrix is a Hessian of F, its square is a rough approximation to the Jacobian. The code to perform these calculations is available in VXL, but not as a simple class, since the implementation depends on what exactly you mean by "Jacobian of a matrix" Ian. XIN LI wrote: > Hello, > > I am using vxl1.8.0. I would like to get the jacobian of a matrix. > Could you please tell me which class I should use to get the jacobian > matrix? > > Thanks! > > Xin > 