資源簡介
實現了快速相機標定,方法是利用了RAC標定

代碼片段和文件信息
#include?“stdafx.h“
//#include?“LaserMeasureSys.h“
#include?“math.h“
#include?“biaoding.h“
#include?“fstream“
using?namespace?std;
#ifdef?_DEBUG
#define?new?DEBUG_NEW ??
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
double?flfrklkrk;????????//f1為左相機(96)的聚焦,f2為右相機(90)的焦距
double?Tl[3]Tr[3];??//T1為左相機(96)的平移矩陣,T2為右相機(90)的平移矩陣
double?Rl[9]Rr[9];??//R1為左相機(96)的旋轉矩陣,R2為右相機(90)的平移矩陣
int?Read_Data96(double?*all_data)
{
int?i=0;
ifstream?in(“左右像面坐標.txt“);
while(in>>all_data[i])
{
i++;
}
return?i;
}
int?Read_Data90(double?*all_data)
{
int?i=0;
ifstream?in(“world1.txt“);
while(in>>all_data[i])
{
i++;
}
return?i;
}
/****************************************************************
函數名:cinv_inv();矩陣求逆運算
參??數:a[3][3]待求逆矩陣
???????n?矩陣維數
返回值:無返回值,求逆后矩陣返回原矩陣
*****************************************************************/
void?cinv_inv?(double?a[3][3]int?n)??????????//執行求逆運算
{?
int?*is*jsijk;
double?dp;
is=new?int[n];
js=new?int[n];
for(k=0;k<=n-1;k++)
{
d=0.0;
for(i=k;i<=n-1;i++)
for(j=k;j<=n-1;j++)
{
p=fabs(a[i][j]);
if(p>d)
{
d=p;
is[k]=i;
js[k]=j;
}
}
if(d+1.0==1.0)
{
delete[]?isjs;
// cout<<“\nA為奇異矩陣!沒有逆矩陣。“< exit(1);
}
if(is[k]!=k)
for(j=0;j<=n-1;j++)
{
p=a[k][j];
a[k][j]=a[is[k]][j];
a[is[k]][j]=p;
}
if(js[k]!=k)
for(i=0;i<=n-1;i++)
{
p=a[i][k];
a[i][k]=a[i][js[k]];
a[i][js[k]]=p;
}
a[k][k]=1.0/a[k][k];
for(j=0;j<=n-1;j++)
if(j!=k)
a[k][j]=a[k][j]*a[k][k];
for(i=0;i<=n-1;i++)
if(i!=k)
for(j=0;j<=n-1;j++)
if(j!=k)
a[i][j]=a[i][j]-a[i][k]*a[k][j];
for(i=0;i<=n-1;i++)
if(i!=k)
a[i][k]=-a[i][k]*a[k][k];
}
for(k=n-1;k>=0;k--)
{
if(js[k]!=k)
for(j=0;j<=n-1;j++)
{
p=a[k][j];
a[k][j]=a[js[k]][j];
a[js[k]][j]=p;
}
if(is[k]!=k)
for(i=0;i<=n-1;i++)
{
p=a[i][k];
a[i][k]=a[i][is[k]];
a[i][is[k]]=p;
}
}
delete[]?isjs;
}
/****************************************************************
函數名:ppp(),sss(),bmuav(),bginv(),agmiv()標定過程中參與運算的函數
說??明:這5個函數使用過程中無需改動
*****************************************************************/
void?ppp(double?*a?double?*e?double?*s?double?*v?int?m?int?n)
{
int?ijpq;
????double?d;
????if?(m>=n)?i=n;
????else?i=m;
????for?(j=1;?j<=i-1;?j++)
??????{?a[(j-1)*n+j-1]=s[j-1];
????????a[(j-1)*n+j]=e[j-1];
??????}
????a[(i-1)*n+i-1]=s[i-1];
????if?(m ????for?(i=1;?i<=n-1;?i++)
????for?(j=i+1;?j<=n;?j++)
??????{?p=(i-1)*n+j-1;?q=(j-1)*n+i-1;
????????d=v[p];?v[p]=v[q];?v[q]=d;
??????}
return;
}
void?sss(double?*fg?double?*cs)
{
double?rd;
????if?((fabs(fg[0])+fabs(fg[1]))==0.0)
??????{?cs[0]=1.0;?cs[1]=0.0;?d=0.0;}
????else?
??????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????21643??2011-09-14?19:30??RAC\biaoding.cpp
?????文件????????559??2011-09-14?19:28??RAC\biaoding.h
?????文件??????43386??2011-09-14?19:30??RAC\Debug\biaoding.obj
?????文件??????????0??2011-09-14?19:30??RAC\Debug\biaoding.sbr
?????文件??????19729??2011-09-07?20:24??RAC\Debug\MainFrm.obj
?????文件??????????0??2011-09-07?20:32??RAC\Debug\MainFrm.sbr
?????文件????4121600??2011-09-14?20:55??RAC\Debug\RAC.bsc
?????文件?????139307??2011-09-14?20:55??RAC\Debug\RAC.exe
?????文件?????432952??2011-09-14?20:55??RAC\Debug\RAC.ilk
?????文件??????22597??2011-09-07?20:24??RAC\Debug\RAC.obj
?????文件????6997696??2011-09-07?20:24??RAC\Debug\RAC.pch
?????文件?????467968??2011-09-14?20:55??RAC\Debug\RAC.pdb
?????文件???????8664??2011-09-07?20:24??RAC\Debug\RAC.res
?????文件??????????0??2011-09-07?20:32??RAC\Debug\RAC.sbr
?????文件??????14381??2011-09-07?20:24??RAC\Debug\RACDoc.obj
?????文件??????????0??2011-09-07?20:32??RAC\Debug\RACDoc.sbr
?????文件??????35724??2011-09-14?20:55??RAC\Debug\RACView.obj
?????文件??????????0??2011-09-14?20:55??RAC\Debug\RACView.sbr
?????文件?????105525??2011-09-07?20:24??RAC\Debug\StdAfx.obj
?????文件????1374948??2011-09-07?20:24??RAC\Debug\StdAfx.sbr
?????文件?????254976??2011-09-16?19:56??RAC\Debug\vc60.idb
?????文件?????446464??2011-09-14?20:55??RAC\Debug\vc60.pdb
?????文件???????2504??2011-09-06?18:16??RAC\MainFrm.cpp
?????文件???????1581??2011-09-06?18:16??RAC\MainFrm.h
?????文件??????45408??2011-09-07?15:13??RAC\RAC.APS
?????文件???????2399??2011-09-14?20:57??RAC\RAC.clw
?????文件???????4155??2011-09-06?18:16??RAC\RAC.cpp
?????文件???????4757??2011-09-08?15:27??RAC\RAC.dsp
?????文件????????529??2011-09-06?18:16??RAC\RAC.dsw
?????文件???????1323??2011-09-06?18:16??RAC\RAC.h
............此處省略28個文件信息
- 上一篇:對GIS地圖進行打網格,例如經緯網格等
- 下一篇:程序設計基礎(吳文虎)
評論
共有 條評論