相对定向与绝对定向

连续相对定向与绝对定向:构建立体模型的步骤详解

1.相对定向

在这里介绍相对定向是为了下一步的核线影像生成,主要讲解连续法相对定向,需要同名点坐标(特征匹配算法即可得到)。

1.1理论知识

  根据书上说的,确定一个立体像对两像片的相对位置称为相对定向。一般确定两像片相对位置有两种方法:其一是将摄影基线固定水平,称为独立像对相对定向系统;其二是将左像片置平或将其位置固定不变,称为连续像对相对定向系统。这两种系统选取了不同的像空间辅助坐标系,因为有不同的相对定向元素。

相对定向的原理是同名光线对对相交于核面内。(这里不作赘述)

1.1.1 连续像对的相对定向元素
  若将左片置平,以左片的像空间坐标系作为本像对的像空间辅助坐标系(或称以左方像片为基准或左像片的外方位元素已知),这样的像对为连续像对。如下图所示,S1-X1Y1Z1为本像对的像空间辅助坐标系,此时,S1在该坐标系的坐标为:XS1=YS1=ZS1=0,像片的三个角元素亦为零,即ϕ\phiϕ1=ω\omegaω1=κ\kappaκ1=0。而在右像片中,S2在S1-X1Y1Z1坐标系的坐标为:XS2=Bx,YS2=By,ZS2=Bz,三个角元素为ϕ\phiϕ2ω\omegaω2κ\kappaκ2。其中,Bx,By,Bz也称为基线分量(模型上的)。在上述的六个元素Bx,By,Bzϕ\phiϕ2ω\omegaω2κ\kappaκ2中,因Bx只影响相对定向后建立模型的大小而并不影响模型的建立,因此,称By,Bzϕ\phiϕ2ω\omegaω2κ\kappaκ2为连续相对定向的五个相对定向元素,只要恢复了立体像对这五个元素,就确定了像片对的相对位置,完成了相对定向,可建立与地面相似的几何模型。

1.1.2 单独像对相对定向元素
  若将摄影基线置平,像空间辅助坐标系选取S1为坐标原点,基线B作为X轴,垂直于左核面的轴为Y轴构成右手平面坐标系S1-X1Y1Z1,这样的像对为单独像对,如下图所示。此时对左像对,三个线元素为:XS1=YS1=ZS1=0,因左光轴在S1-X1Z1平面内,三个角元素为:ω\omegaω1=0,ϕ\phiϕ1κ\kappaκ1,对于右像片,三个线元素为:XS2=Bx=B,YS2=0,ZS2=0;三个角元素为ϕ\phiϕ2ω\omegaω2κ\kappaκ2。上述的六个元素B、ϕ\phiϕ1κ\kappaκ1ϕ\phiϕ2ω\omegaω2κ\kappaκ2中,B只涉及模型的比例尺,即影响模型的大小而不影响重建模型,因此,称ϕ\phiϕ1κ\kappaκ1ϕ\phiϕ2ω\omegaω2κ\kappaκ2为单独像对的相对定向五个元素。

1.2 编程实现

//代码都写在了机房的电脑上,最近疫情机房不让去,稍后补上。

2.绝对定向

相对定向仅仅是恢复了摄影时像片之间的相对位置,所建立的立体模型是一个以相对定向选定得像空间辅助坐标系为基准得模型。还要把模型点在像空间辅助坐标系中的坐标转化为地面摄影测量坐标(X,Y,Z)

2.1理论知识

  绝对定向就是借助已知的地面控制点确定立体模型比例尺和地面坐标系中所处方位的过程。原理是将相对定向好的模型进行旋转和平移,使它与地面量测的数据相匹配,从而在模型中建立起地面坐标系统。

  该式为绝对定向的基本关系式。由于这种变换前后图形的几何形状相似,所以又称为空间相似变换。式中,(X,Y,Z)为模型点的地面摄影测量坐标,(U,V,W)为同一模型点在像空间辅助坐标系的坐标。λ\lambdaλ为模型缩放比例因子,(a1,a2,…c3)为两个坐标轴三个转角Φ\PhiΦΩ\OmegaΩ、K计算出来的方向余弦,(XS,YS,ZS)为坐标原点的平移量,称七个参数XS,YS,ZSλ\lambdaλΦ\PhiΦΩ\OmegaΩ、K为模型的绝对定向参数,即确定相对定向所建立的模型空间方位的元素。绝对定向的任务就是借助地面控制点,恢复或计算这七个元素,这也是解析法绝对定向的定义。

2.1.1 绝对定向公式的线性化及绝对定向元素的解算
利用地面控制点解求绝对定向元素时,控制点的地面摄影测量坐标(X,Y,Z)均为已知值,模型的像空间辅助坐标(U,V,W)为计算值,式中只有七个绝对定向元素是未知数。因此绝对定向公式是一个多元非线性函数,使其线性化,引入七个绝对定向元素的初始值及改正值:

将(2)式代入(1),按泰勒级数展开,取一次项得:

在考虑小角的情况下,(1)式的近似式可表示为:

对上式微分后代入(3)式,取小值一次项得:

上式中含有七个未知数,需要列七个方程,因此,至少需要两个平高点和一个高程点,而且三个控制点不能在一条直线上。生产中,一般是在模型四个角布设四个控制点。当有多余观测时,应按最小二乘法解求,将上式中模型的像空间辅助坐标(U,V,W)视为观测值,其改正数为vu,vv,vw,写成误差方程形式,得:

式中,

2.1.2 坐标重心化
实际计算绝对定向元素时,常选模型的重心为坐标原点将坐标重心化,这种数据处理方法的好处是:可以减少模型点坐标在计算过程中的有效位数,以保证计算精度;可以使法方程系数简化,个别项的数值变为零,部分未知数可以分开求解,从而提高了计算速度。

单元模型中全部控制点的空间辅助坐标和地面摄影坐标的重心坐标为:

相应的重心化坐标为:

将重心化坐标带入绝对定向的基本公式,得:

由此得到用重心化坐标表示的误差方程式为:

式中,

2.1.3 绝对定向的解算流程
绝对定向的具体解算过程归纳为:
1.确定待定参数的初始值,Φ\PhiΦ0 = Ω\OmegaΩ0 = K0 = 0, λ\lambdaλ0 = 1,Δ\DeltaΔX = Δ\DeltaΔY = Δ\DeltaΔZ = 0;
2. 计算控制点的地面摄影测量坐标系重心的坐标和重心化坐标;
3. 计算控制点的空间辅助坐标重心坐标和重心化坐标;
4. 计算常数项;
5. 按下式计算误差方程系数;

6. 逐点法化及法方程求解;
7. 计算待定参数的新值:

8.判断dΦ\PhiΦ、dΩ\OmegaΩ、dK是否小于给定的限值。若大于限值,将求得的所有未知参数的改正数加到近似值作为新的近似值作为新的近似值,重复上述计算问题,逐步趋近,直到满足要求。

求出绝对定向元素之后,可根据待求点的重心化坐标(U‾\overline{U}U,V‾\overline{V}V,W‾\overline{W}W)按(9)式求出待求点的重心化地面摄影测量坐标(X‾\overline{X}X,Y‾\overline{Y}Y,Z‾\overline{Z}Z),再加上重心坐标(Xg,Yg,Zg)后得待求点的地面摄影测量坐标(X,Y,Z),最后将地面摄影测量坐标再转回到地面测量坐标,提交成果。(应注意,绝对定向是像空间辅助坐标(U,V,W)和地面摄影测量坐标(X,Y,Z)间的变换。因地面摄影测量坐标系的原点再测区内某点,其三轴系的选取几乎与像空间辅助坐标系平行,所以两坐标轴旋转时,K是个小角值,这便于计算。但提供绝对定向用的地面控制点为地面坐标(Xt,Yt,Zt),所以,在进行绝对定向前,还要将地面测量坐标(Xt,Yt,Zt)转换为地面摄影测量坐标(X,Y,Z)。)

2.2 编程实现

//代码都写在了机房的电脑上,最近疫情机房不让去,稍后补上。

3.双像解析的相对定向-绝对定向法

立体像对相对定向-绝对定向法解求模型点的地面坐标,其过程为:
1.用连续像对或单独像对的相对定向元素的误差方程式解求像对的相对定向元素;
2.由相对定向元素组成左、右像片的旋转矩阵R1,R2,并利用前方交会式求出模型点在像空间辅助坐标系中的坐标;
3.根据已知地面控制点的坐标,按绝对定向元素的误差方程式解求该立体模型的绝对定向元素;
4.按绝对定向公式,将所有待定点的坐标纳入到地面摄影测量坐标系中。

连续像对相对定向摄影测量中的一个重要步骤,用于确定相邻像片之间的相对位置和姿态关系。以下是一个简单的连续像对相对定向的Matlab代码示例: ```matlab % 连续像对相对定向Matlab代码示例 % 输入左右像片的同名点坐标(这里简单模拟) % 假设每列代表一个同名点,第一行为x坐标,第二行为y坐标 left_points = [100 200 300; 150 250 350]; right_points = [110 210 310; 160 260 360]; % 初始参数设置 % 相对定向元素初始值,这里简单设置为0 phi = 0; omega = 0; kappa = 0; Bx = 100; By = 0; Bz = 0; % 迭代计算相对定向元素 max_iter = 100; % 最大迭代次数 tolerance = 1e-6; % 收敛阈值 for iter = 1:max_iter % 构建旋转矩阵 R_phi = [1 0 0; 0 cos(phi) -sin(phi); 0 sin(phi) cos(phi)]; R_omega = [cos(omega) 0 sin(omega); 0 1 0; -sin(omega) 0 cos(omega)]; R_kappa = [cos(kappa) -sin(kappa) 0; sin(kappa) cos(kappa) 0; 0 0 1]; R = R_kappa * R_omega * R_phi; % 计算左右像点的投影系数 num_points = size(left_points, 2); for i = 1:num_points % 左像点坐标 x1 = left_points(1, i); y1 = left_points(2, i); % 右像点坐标 x2 = right_points(1, i); y2 = right_points(2, i); % 计算投影系数 % 这里省略了复杂的投影系数计算过程,仅作示意 % 实际应用中需要根据共线方程等理论进行计算 % 以下为简单示例 a1 = R(1, 1); a2 = R(1, 2); a3 = R(1, 3); b1 = R(2, 1); b2 = R(2, 2); b3 = R(2, 3); c1 = R(3, 1); c2 = R(3, 2); c3 = R(3, 3); % 计算误差方程系数 % 这里省略了误差方程系数的详细计算过程,仅作示意 % 实际应用中需要根据相对定向的误差方程理论进行计算 % 以下为简单示例 A = [1 0 0; 0 1 0; 0 0 1]; % 误差方程系数矩阵 l = [x2 - (a1 * x1 + a2 * y1 + a3) / (c1 * x1 + c2 * y1 + c3); y2 - (b1 * x1 + b2 * y1 + b3) / (c1 * x1 + c2 * y1 + c3)]; % 误差方程常数项 % 法方程求解 N = A' * A; U = A' * l; X = N \ U; % 更新相对定向元素 phi = phi + X(1); omega = omega + X(2); kappa = kappa + X(3); end % 判断是否收敛 if norm(X) < tolerance break; end end % 输出最终的相对定向元素 fprintf('最终的相对定向元素:\n'); fprintf('phi = %.6f\n', phi); fprintf('omega = %.6f\n', omega); fprintf('kappa = %.6f\n', kappa); fprintf('Bx = %.6f\n', Bx); fprintf('By = %.6f\n', By); fprintf('Bz = %.6f\n', Bz); ``` ### 代码说明: 1. **输入数据**:输入左右像片的同名点坐标。 2. **初始参数设置**:设置相对定向元素的初始值。 3. **迭代计算**:通过迭代计算相对定向元素,直到满足收敛条件或达到最大迭代次数。 4. **旋转矩阵构建**:根据相对定向元素构建旋转矩阵。 5. **投影系数计算**:根据旋转矩阵和像点坐标计算投影系数。 6. **误差方程求解**:构建误差方程并求解,更新相对定向元素。 7. **输出结果**:输出最终的相对定向元素。 ### 注意事项: - 此代码仅为简单示例,实际应用中需要根据共线方程、相对定向的误差方程等理论进行详细的计算。 - 输入的同名点坐标应根据实际情况进行准确测量和输入。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值