終於寫出來第二個攝影測量的程式了,感慨萬千。對於程式設計學習,還是要多付出實踐,才會有收穫。
; //以像主點為原點的像平面座標系的像點座標
float kuangbiao[16] = ;
//掃瞄座標系下框標座標的行列號
float a_num[16][6] = ;
//a陣為16行6列
float x0 = -0.004; //x偏移量
float y0 = -0.008; //y偏移量
float delta = 0.045; //畫素大小
float f = 152.72;
for (int k = 0; k < 16; k+=2 )
//定義矩陣
mat a(16, 6, cv_32f, a_num); //a為16行6列,float型別的矩陣
mat x(6, 1, cv_32f, 0.0); //x為6行1列,float型別的矩陣,為要求的運算後的矩陣
mat l(16, 1, cv_32f, saomiao); //l為16行1列的,float型別的常數矩陣
x = ((a.t()*a).inv())*a.t()*l;
//矩陣運算 a的轉置a.t 再乘以a 矩陣求逆inv() 再乘以a 再乘以l
std::cout << x << std::endl;
float m0 = x.at(0, 0); //x矩陣第一行第一列的數
float m1 = x.at(1, 0);
float m2 = x.at(2, 0);
float n0 = x.at(3, 0);
float n1 = x.at(4, 0);
float n2 = x.at(5, 0);
float x1,x1_dx;
float y1,y1_dx;
float z;
x1 = 2996; //輸入任意乙個畫素的框標座標
y1 = 1486;
x1_dx = m0+ m1*x1*delta-m2*y1*delta-x0;
y1_dx = n0 + n1*x1*delta-n2*y1*delta-y0;//得到像平面座標系(減去主點偏移量)
z = -f;
cout << x1_dx << endl;
cout << y1_dx << endl;
cout << z << endl; //得到像空間輔助座標系
getchar();
return 0;
}//執行結果
[-114.85733;
1.0008425;
-0.0094435224;
114.17293;
0.0083294483;
1.0008631]
20.7117
48.3762
-152.72
內定向程式設計
攝影測量老師布置的作業,大火可以參考看看 其實最主要的就是矩陣運算的函式,c 沒有矩陣運算的庫,所以只能自己寫函式。下面 部分的矩陣相關的函式可以直接拿走用。如果有也需要寫內定向程式設計的同學可以改框標座標等這些資料來完成自己的程式設計。includeusing std cout using std...
rssi室內定位演算法原理 室內定位常用演算法概述
一.室內定位目的和意義 隨著資料業務和多 業務的快速增加,人們對定位與導航的需求日益增大,尤其在複雜的室內環境,如機場大廳 展廳 倉庫 超市 圖書館 地下停車場 礦井等環境中,常常需要確定移動終端或其持有者 設施與物品在室內的位置資訊。但是受定位時間 定位精度以及複雜室內環境等條件的限制,比較完善的...
映像劫持 程式重定向
有關hkey local machine software microsoft windows nt currentversion image file execution options 映像劫持的示例 如下 include include using namespace std void mai...