一、原理

二、步骤

a.用各自像片的角元素计算出左右像片的旋转矩阵R1和R2。

b.根据左右像片的外方位元素计算摄影基线分量Bx,By,Bz。

c.逐点计算像点的空间辅助坐标。

d.计算投影系数。

e.计算未知点的地面摄影测量坐标。

f.重复以上步骤完成所有点的地面坐标的计算。

三、示例代码

# -*- coding: utf-8 -*-
"""
Created on Mon Nov 25 08:18:30 2019 @author: L JL
""" import numpy as np
import math as m def r_mat(f,w,k):
Rf = np.mat([[m.cos(f), 0, -m.sin(f)],
[0, 1, 0],
[m.sin(f), 0, m.cos(f)]]) Rw = np.mat([[1, 0, 0],
[0, m.cos(w), -m.sin(w)],
[0, m.sin(w), m.cos(w)]]) Rk = np.mat([[m.cos(k), -m.sin(k), 0],
[m.sin(k), m.cos(k), 0],
[0, 0, 1]]) R = Rf*Rw*Rk return R def SpatialAuxiliaryCoordinate(xy,f,R):
coor1 = np.mat([[xy[0]],
[xy[1]],
[-f]])
coor2 = R*coor1
return coor2
def ProjectionCoefficient(SAC1,SAC2,B):
N1 = (B[0,0]*SAC2[2,0]-B[2,0]*SAC2[0,0])/(SAC1[0,0]*SAC2[2,0]-SAC2[0,0]*SAC1[2,0])
N2 = (B[0,0]*SAC1[2,0]-B[2,0]*SAC1[0,0])/(SAC1[0,0]*SAC2[2,0]-SAC2[0,0]*SAC1[2,0])
return N1,N2 #main
left_HomonymousImagePoints = [0.153,91.798]
right_HomonymousImagePoints = [-78.672,89.122] left_In = np.mat([0,0,152.91])
left_Ex = np.mat([[970302.448784],
[-1138644.971216],
[3154.584941],
[0.010425],
[-0.012437],
[0.003380]])
right_In = np.mat([0,0,152.91])
right_Ex = np.mat([[971265.303768],
[-1138634.245942],
[3154.784258],
[0.008870],
[-0.005062],
[-0.008703]]) R_L = np.mat(np.zeros((3,3)))
R_R = np.mat(np.zeros((3,3)))
left_SACoordinate = np.mat(np.zeros((3,1)))
right_SACoordinate = np.mat(np.zeros((3,1)))
baselineComponent = np.mat(np.zeros((3,1))) R_L = r_mat(left_Ex[3,0],left_Ex[4,0],left_Ex[5,0])
R_R = r_mat(right_Ex[3,0],right_Ex[4,0],right_Ex[5,0]) #left_SpatialAuxiliaryCoordinate = R_L*left_In.T
#right_SpatialAuxiliaryCoordinate = R_R*right_In.T
left_SACoordinate = SpatialAuxiliaryCoordinate(left_HomonymousImagePoints,left_In[0,2],R_L)
right_SACoordinate = SpatialAuxiliaryCoordinate(right_HomonymousImagePoints,right_In[0,2],R_R) baselineComponent = right_Ex[0:3,0] - left_Ex[0:3,0]
N1,N2 = ProjectionCoefficient(left_SACoordinate,right_SACoordinate,baselineComponent)
#GPhotogrammetrCoordinates
GPCoordinates = np.mat(np.zeros((3,1)))
GPCoordinates = ((left_Ex[0:3,0]+N1*left_SACoordinate) + (right_Ex[0:3,0]+N2*right_SACoordinate))/2 print("左影像同名点:",left_HomonymousImagePoints)
print("左影像同名点:",right_HomonymousImagePoints)
print("地面点坐标:\n X=%f,\n Y=%f,\n Z=%f"
%(GPCoordinates[0,0],GPCoordinates[1,0],GPCoordinates[2,0]))

立体像对空间前方交会-点投影系数法(python实现)的更多相关文章

  1. 立体像对空间前方交会-共线方程求解法(python实现)

    一.原理 二.步骤 a.用各自像片的角元素计算出左右像片的旋转矩阵R1和R2. b.有同名像点列出共线方程. c.将方程写为未知数的线性方程形式,计算线性系数. d.写出误差方程,系数矩阵与常数项. ...

  2. 相关性系数及其python实现

    参考文献: 1.python 皮尔森相关系数 https://www.cnblogs.com/lxnz/p/7098954.html 2.统计学之三大相关性系数(pearson.spearman.ke ...

  3. LSH︱python实现局部敏感随机投影森林——LSHForest/sklearn(一)

    关于局部敏感哈希算法.之前用R语言实现过,可是由于在R中效能太低.于是放弃用LSH来做类似性检索.学了python发现非常多模块都能实现,并且通过随机投影森林让查询数据更快.觉得能够试试大规模应用在数 ...

  4. Python实现客观赋权法

    本文从阐述Python实现客观赋权法的四种方式: 一. 熵权法 二. 因子分析权数法(FAM) 三. 主成分分析权数法(PCA) 四. 独立性权系数法 Python实现客观赋权法,在进行赋权前,先导入 ...

  5. Python 名称空间与作用域、闭包与装饰器

    Python 的名称 Python 的名称(Name)是对象的一个标识(Identifier).我们知道,在 Python 里面一切皆对象,名称就是用来引用对象的.说得有点玄乎,我们以例子说明. 例如 ...

  6. python基础语法6 名称空间与作用域

    目录: 1.函数对象 2.函数嵌套 3.名称空间 4.作用域 函数是第一类对象 1.函数名是可以被引用: def index(): print('from index') a = index a() ...

  7. Python名称空间与作用域

    什么是名称空间? 比如下图的长方形代表内存,在这个内存里我要设置一个变量100,那么这个变量得有个门牌号,就叫他a吧,但其实变量不是这么存储的,他其实的存储方式是这样的,他会有一个名称空间,这个名称空 ...

  8. Python基础之函数:1、函数的介绍及名称空间

    目录 一.函数 1.什么是函数 2.函数的语法结构 3.函数的定义与调用 4.函数的分类 5.函数的返回值 6.函数的参数 二.函数参数 1.位置参数 2.默认参数 3.可变长参数 1.一个*号 2. ...

  9. 3.2 一般的哈尔空间Vj

    例3.2给予我们继续往下面做的动力.很明显的我们对于g(t)的逼近还是太粗糙了.很自然的,我们会想到,如果继续细分我们的短点,比如每1/2取一个值,甚至每1/4取一个值,那么就会有更好的逼近效果. 不 ...

随机推荐

  1. org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application

    编程中遇到:org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot ...

  2. windows下更改Apache以fastcgi方式运行php

    Apache 默认 apache2handler 方式运行处理php. 下面说切换方法: 1.下载fastcgi模块,打开https://www.apachelounge.com/download/选 ...

  3. openresty开发系列29--openresty中发起http请求

    openresty开发系列29--openresty中发起http请求 有些场景是需要nginx在进行请求转发 用户浏览器请求url访问到nginx服务器,但此请求业务需要再次请求其他业务:如用户请求 ...

  4. Zabbix3.4指定用户才能收到报警的配置

    Zabbix3.4指定用户才能收到报警的配置 .下载python微信脚本 #安装simplejson wget https://pypi.python.org/packages/f0/07/26b51 ...

  5. shell编程系列13--文本处理三剑客之sed利用sed追加文件内容

    shell编程系列13--文本处理三剑客之sed利用sed追加文件内容 追加用法总结: .a 在匹配行后面追加 .i 在匹配行前面追加 .r 将文件内容追加到匹配行后面 .w 将匹配行写入指定文件 追 ...

  6. web项目访问被拦截

    如图,一启动就出现下图登录界面 原因很简单就是被拦截了.pom.xml中引入了下面的包,注释掉就可以了.当然如果用了shiro等权限框架也可能出现类似问题.谁copy进来的,盘他. <!-- h ...

  7. realsense SDK编译 debug

    1>------ 已启动全部重新生成: 项目: ZERO_CHECK, 配置: Debug x64 ------1> Checking Build System1> CMake do ...

  8. flutter中的listview的使用

    import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends Statele ...

  9. 全基因组关联分析(GWAS):为何我的QQ图那么飘

    前段时间有位小可爱问我,为什么她的QQ图特别飘,如果你不理解怎样算飘,请看下图: 理想的QQ图应该是这样的: 我当时的第一反应是:1)群体分层造成的:2)表型分布有问题.因此让她检查一下数据的群体分层 ...

  10. 123457123456#2#----com.ppGame.ShiZi43--前拼后广--shizi游戏_pp

    com.ppGame.ShiZi43--前拼后广--shizi游戏_pp