1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | import numpy as np from scipy.spatial.transform import Rotation as R import pyproj from pyproj import Proj, transform #0.016938035523210708 0.58455146147157355 -0.48870579156409283 0.64744060819180593 -129342.74756339534 3469822.8668770161 5343696.2087743161 # 四元数 (QW, QX, QY, QZ) qw, qx, qy, qz = 0.016938035523210708 , 0.58455146147157355 , - 0.48870579156409283 , 0.64744060819180593 # 替换为实际值 # 平移向量 (TX, TY, TZ) tx, ty, tz = - 129342.74756339534 , 3469822.8668770161 , 5343696.2087743161 # 将四元数转换为旋转矩阵 rotation = R.from_quat([qx, qy, qz, qw]) rotation_matrix = rotation.as_matrix() # 计算相机中心坐标(ECEF坐标系下) camera_center = - np.dot(rotation_matrix.T, np.array([tx, ty, tz])) print ( "投影中心坐标:(ecef坐标系下)" , camera_center) # 定义坐标转换 # 从ECEF转换到WGS84 ecef = Proj(proj = 'geocent' , ellps = 'WGS84' , datum = 'WGS84' ) wgs84 = Proj(proj = 'latlong' , ellps = 'WGS84' , datum = 'WGS84' ) # 执行转换 lon, lat, alt = transform(ecef, wgs84, camera_center[ 0 ],camera_center[ 1 ], camera_center[ 2 ], radians = False ) # 输出WGS84经纬度坐标 print ( "经度:" , lon, "纬度:" , lat, "高度:" , alt) # 从WGS84转换到UTM Zone 50N utm_zone_50n = Proj(proj = "utm" , zone = 50 , ellps = 'WGS84' , datum = 'WGS84' , south = False ) utm_x, utm_y = transform(wgs84, utm_zone_50n, lon, lat) # 输出UTM坐标 print ( "WGS84坐标系下:UTM Zone 50N X:" , utm_x, "Y:" , utm_y, "Z:" ,alt) # 将四元数转换为旋转矩阵 rotation = R.from_quat([qx, qy, qz, qw]) rotation_matrix = rotation.as_matrix() # 将旋转矩阵转换为欧拉角 (Omega, Phi, Kappa) # 摄影测量中通常使用 ZYX 旋转顺序 omega, phi, kappa = rotation.as_euler( 'ZYX' , degrees = True ) print ( "旋转矩阵:\n" , rotation_matrix) print ( "Omega:" , omega, "Phi:" , phi, "Kappa:" , kappa) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2021-06-18 cuda和cudnn在win10上安装过程
2020-06-18 配置文件读取(2-0)C++获取命令行参数命令
2018-06-18 第一行代码 -3-2 软件也要拼脸蛋-UI界面-更强大的滚动条-RecyclerView