近景摄影测量空间后方交会python

本文介绍了如何使用Python进行近景摄影测量的空间后方交会计算。通过处理像点坐标和物方点坐标,结合坐标系转换,建立误差方程式V=At+CX+DX-L,实现从像点到实际位置的精确重建。
摘要由CSDN通过智能技术生成

首先得有像点坐标和对应物方点坐标,顺序和数量没要求

与航空摄影不同,这里的坐标系需要转换,故读进来的XYZ有变化。

误差方程式:V=At+CX+DX-L

import numpy as np
from math import *

# 读数据方法2
s = np.loadtxt('right.txt')
# 记得手动删除像点坐标文件里的重复点,
# 懒得写了
q = np.loadtxt('控制点坐标.txt')
# 点号,x,y
Pxy = []
for i in range(len(s)):
	if s[i][0] > 100:
		Pxy.append([s[i][0], s[i][1], s[i][2]])
print(len(Pxy))

# X,Y,Z,与Pxy相对应
ground_list = []
# 用来存点号的
temp = [0]*len(q)
for i in range(len(q)):
	temp[i] = q[i][0]
temp_2 = []
for i in range(len(Pxy)):
	position = temp.index(Pxy[i][0])
	ground_list.append([q[position][2], q[position][3], -q[position][1]])
# print(ground_list)

# x,y
image_list = []
for i in range(len(Pxy)):
	image_list.append([Pxy[i][1], Pxy[i][2]])


# 初值设定
# 内外方位元素(9)+畸变系数(4)
phi = 0.0
omega = 0.0
kappa = 0.0
Xs = 4500
Ys = -150
Zs = -800
# 单位mm
f = 36.0
x0 = 0.0
y0 = 0.0
k1 = 0.0
k2 = 0.0
p1 = 0.0
p2 = 0.0

# 迭代次数
num_ite = 0

# 方程内的矩阵
rotate = np.mat(np.zeros((3, 3)))#旋转矩阵
A = np.mat(np.zeros((len(image_list)*2, 9+4)))
# LL:V=(AX+CX2+DXad-L)=(AX-L),L
L = np.mat(np.zeros((len(image_list)*2,1)))
# 存改正数的
delta = [0]*(9+4)
# 存中误差
m = [0]*(9+4)


# 开始处理
while (True):

	# 旋转矩阵
	a1 = cos(phi)*cos(kappa)-sin(phi)*sin(omega)*sin(kappa)
	a2 = (-1.0) * cos(phi) * sin(kappa) - sin(phi) * sin(omega) * cos(kappa)
	a3 = (-1.0) * sin(phi) * cos(omega)
	b1 = cos(omega) * sin(kappa)
	b2 = cos(omega) * cos(kappa)
	b3 = (-1.0) * sin(omega)
	c1 = sin(phi) * cos(kappa) + cos(phi) * sin(omega) * sin(kappa)
	c2 = (-1.0) 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值