值:\r", i + 1);
string u = console.readline();
for (int j = 0; j < n; j += 2)
}//2.像點y座標的輸入
for (int i = 0; i < n; i++)
值:\r", i + 1);
string v = console.readline();
for (int j = 1; j < n; j += 2)
}//控制點的座標輸入**
double[,] arr2 = new
double[n, 3];
//1.控制點x座標的輸入
for (int j = 0; j < n; j++)
值:\r", j + 1);
string u = console.readline();
arr2[j, 0] = (double)convert.tosingle(u);
}//2.控制點y座標的輸入
for (int k = 0; k < n; k++)
值:\r", k + 1);
string v = console.readline();
arr2[k, 1] = (double)convert.tosingle(v);
}//3.控制點z座標的輸入
for (int p = 0; p < n; p++)
值:\r", p + 1);
string w = console.readline();
arr2[p, 2] = (double)convert.tosingle(w);
}//確定外方位元素的初始值
//1.確定xs的初始值:
double xs0 = 0;
double sumx = 0;
for (int j = 0; j < n; j++)
xs0 = sumx / n;
//2.確定ys的初始值:
double ys0 = 0;
double sumy = 0;
for (int j = 0; j < n; j++)
ys0 = sumy / n;
//3.確定zs的初始值:
double zs0 = 0;
double sumz = 0;
for (int j = 0; j <= n - 1; j++)
zs0 = sumz / n;
double φ0 = 0;
double ψ0 = 0;
double k0 = 0;
console.writeline("xs0,ys0,zs0,φ0,ψ0,k0的值分別是:,,,,,", xs0, ys0, zs0, 0, 0, 0);
//用三個角元素的初始值按(3-4-5)計算各方向余弦值,組成旋轉矩陣,此時的旋轉矩陣為單位矩陣i:
double[,] arr3 = new
double[3, 3];
for (int i = 0; i < 3; i++)
double a1 = arr3[0, 0]; double a2 = arr3[0, 1]; double a3 = arr3[0, 2];
double b1 = arr3[1, 0]; double b2 = arr3[1, 1]; double b3 = arr3[1, 2];
double c1 = arr3[2, 0]; double c2 = arr3[2, 1]; double c3 = arr3[2, 2];
/*利用線元素的初始值和控制點的地面座標,代入共線方程(3-5-2),
* 逐點計算像點座標的近似值*/
//1.定義存放像點近似值的陣列
double arr4 = new
double[2 * n];//----------近似值矩陣
//2.逐點像點座標計算近似值
//a.計算像點的x座標近似值(x)
for (int i = 0; i < 2 * n; i += 2)
}//b.計算像點的y座標近似值(y)
for (int i = 1; i < 2 * n; i += 2)
}//逐點計算誤差方程式的係數和常數項,組成誤差方程:
double[,] arr5 = new
double[2 * n, 6]; //------------係數矩陣(a)
//1.計算dxs的係數
for (int i = 0; i < 2 * n; i += 2)
//2.計算dys的係數
for (int i = 1; i < 2 * n; i += 2)
計算誤差方程式vx中dzs的係數
for (int i = 0; i < 2 * n; i += 2)
計算誤差方程式vy中dzs的係數
for (int i = 1; i < 2 * n; i += 2)
計算誤差方程式vx中dφ的係數
for (int i = 0; i < 2 * n; i += 2)
計算誤差方程式vy中dφ的係數
for (int i = 1; i < 2 * n; i += 2)
計算誤差方程式vx中dψ的係數
for (int i = 0; i < 2 * n; i += 2)
計算誤差方程式vy中dψ的係數
for (int i = 1; i < 2 * n; i += 2)
計算誤差方程式vx中dk的係數
for (int i = 0; i < 2 * n; i += 2)
計算誤差方程式vy中dk的係數
for (int i = 1; i < 2 * n; i += 2)
//定義外方位元素組成的陣列
double arr6 = new
double[6];//--------------------外方位元素改正數矩陣(x)
//定義常數項元素組成的陣列
double arr7 = new
double[2 * n];//-----------------常數矩陣(l)
//計算lx的值
for (int i = 0; i < 2 * n; i += 2)
//計算ly的值
for (int i = 1; i <= 2 * (n - 1); i += 2)
/* 對於所有像點的座標觀測值,一般認為是等精度量測,所以權陣p為單位陣.
所以x=(ata)-1atl */
//1.計算at
double[,] arr5t = new
double[6, 2 * n];
for (int i = 0; i < 6; i++)
}//a的轉置與a的乘積,存放在arr5aa中
double[,] arr5aa = new
double[6, 6];
for (int i = 0; i < 6; i++)}}
nijuzhen(arr5aa);
//arr5aa經過求逆後變成原矩陣的逆矩陣
//arr5aa * arr5t存在arr5aarat
double[,] arr5aarat = new
double[6, 2 * n];
for (int i = 0; i < 6; i++)}}
//計算arr5aarat x l,存在arrx中
double arrx = new
double[6];
for (int i = 0; i < 6; i++)}}
//計算外方位元素值
double xs, ys, zs, φ, ψ, k;
xs = xs0 + arrx[0];
ys = ys0 + arrx[1];
zs = zs0 + arrx[2];
φ = φ0 + arrx[3];
ψ = ψ0 + arrx[4];
k = k0 + arrx[5];
for (int i = 0; i <= 2; i++)
console.writeline("xs,ys,zs,φ,ψ,k的值分別是:,,,,,", xs0, ys0, zs0, φ, ψ, k);
console.read();
}//求arr5aa的逆矩
public
static
double[,] nijuzhen(double[,] a)
for (k = 0; k < 6; k++)}}
//交換行列,將主元調整到k行k列上
if (row != k)
i = p[row]; p[row] = p[k]; p[k] = i;
}if (col != k)
}//處理
for (j = k + 1; j < 6; j++)
for (j = 0; j < 6; j++)
for (j = k + 1; j < 6; j++)
for (i = k + 1; i < 6; i++)
}for (j = 0; j < 6; j++)
for (i = k + 1; i < 6; i++)
}for (i = 0; i < 6; i++)
}//恢復行列次序
for (j = 0; j < 6; j++)
}for (i = 0; i < 6; i++)
}return a;
}}}
攝影測量學後方交會,遺憾沒有人性化的的物件介面
課程筆記 武大公開課 攝影測量學
李二的筆記張祖勳 院士攝影測量基礎知識 通過攝影進行測量由測繪的前方交會intersection,看攝影測量 測繪中的前方交會 在已知位置點設站,對未知點進行測量 測量水平角和垂直角 又叫角度交會 攝影測量中的前方交會 在地面上兩個已知位置,對未知物體拍攝兩張 然後再影像上量測同名點a1和a2,求解...
基於matlab的攝影測量後方交會元素解算
自己做的後方交會元素解算matlab源程式 廢話不多說,直接上 的原始資料都已經直接賦值了,可以再寫一點點 讀入excel或者txt a code block 單幅影像後方交會 auther neverforget2020 time 2020.9.21 close all clear clc dis...
空間後方交會c 程式 全站儀後方交會測量
全站儀後方交會測量在隧道測量中的應用 後方交會測量使用的最多的是後方座標交會,在隧道測量裡面很常用。通常隧道內各種施工放樣全站儀設站都是使用後方座標交會。後方交會測量 通過多個已知點完成全站儀的自由設站。座標距離測量方式通過2 10個點位即可完成設站,角度測量方式需要3 10個點位完成設站。點位越多...