数码相机定位三维重建模型 第6页
八.附 录
附录1u v h x m
417 554 70001 0.09 1.32
417 554 70001 0.1 1.32
417 554.61 70001 0.2 1.32
417 554.61 70001 0.3 1.32
417 550.44 1001 1.5 1.33
417 550.44 1001 1.4 1.33
417 550.44 1001 1.3 1.33
417 550.44 1001.1 1.2 1.33
417 550.45 1001.2 1.1 1.34
417 550.45 1001.1 1.2 1.34
417 550.44 1001 1 1.34
417 550.46 1001.6 0.9 1.34
417 558.78 50 0.67 1.34
417 558.78 4600 0.74 1.34
417 558.78 10000 0.75 1.34
417 558.78 11000 0.37 1.34
417 558.78 6000 1.1 1.34
上述数据产生所用的C++程序:
#include<iostream>
#include<cmath>
using namespace std;
void main()
{
double m,u,v,h,x;
cout <<"请输入h的值 ";
cin>>h;
cout <<"请输入u的值 ";
cin>>u;
cout <<"请输入v的值 ";
cin>>v;
cout <<"请输入x的值 ";
cin>>x;
v=h/(cos(x));
m=v*(1/u);
cout <<"u的值为"<< u<<endl;
cout <<"v的值为"<< v<<endl;
cout <<"h的值为"<< h<<endl;
cout <<"x的值为"<< x<<endl;
cout <<"m的值为"<< m<<endl;
}
以下的程序可以作为上述程序的补充:
For(h=0;h<=70000;h++)
{
For(x=0;x<=1.507;x=x+0.01)
附录2
Levenberg-Marquardt算法的计算步骤如下:
(1) 给定初始点 ,初始参数 >0,增长因子 >0,允许误差 >0,计算 ,置 , .
(2) 置 ,计算
(3)解方程 : 求得方向 ,令
(4)计算 。若 <
则转步(6)否则,进行步(5)。
(5)若 ,则停止计算,得到解 ;否则,置 ,转步(3)。
(6)若 ,则停止计算,得到解 ;否则,置 ,返回步(7)初始参数 和因子 应取适当数值,如根据经验可取 =0.01, =10。