Google Earth 图片叠加Geo-referencing算法

在Google Earth中,可将一个图片添加进来成为一个“叠加层”(菜单:添加->图像叠加层),通过对图片叠加层进行平移、旋转、拉伸等操作,使图片上的地理要素与Google Earth中的卫星图像重合,这一过程称之为对图像的Geo-referencing,即:图像的像素空间(以像素的行、列为坐标)与地理空间(以经纬度为坐标)之间的映射。

以深圳市宝安区绿道地图(地址:http://imgbdb2.bendibao.com/szbdb/20143/20/201432014584100.jpg)为例。将地图添加为图片叠加层,选取地图上的3个跨度较大的兴趣点,对地图进行平移、旋转、拉伸等操作,使3个兴趣点与卫星地图上的实际位置重合。如下图:

所选择的3个兴趣点分别是:

  • 广田路与燕山大道交叉点,像素坐标为(995, 288),地理坐标为(113.852873, 22.806881)
  • 宝安大道与新安五路交叉点,像素坐标为(1136, 2318),地理坐标为(113.875381, 22.57191)
  • 龙大高速与机荷高速交叉点,像素坐标为(1904, 1339),地理坐标为(113.969075, 22.686780)

以上像素坐标(x, y)中,x、y分别为像素的列和行,原点在图像左上角;地理坐标(x, y)中x、y分别为经度和维度,经度以向东为正,维度向北为正。后同。

Google Earth对图片叠加层允许的操作有平移(Translate)、旋转(Rotate)、拉伸(Scale)3种;另外,由于像素坐标y轴方向与地理坐标y轴(纬度)相反,这里隐含了相对于x轴的反射变换(Reflect)。因此,图片叠加层的Geo-referencing是一种2D仿形变换。所谓仿形变换,有这样的特点:直线变换后仍为直线,平行线变换后仍为平行线,进而平行四边形变换后仍为平行四边形。

作为检验,在经过上述“3点定位”过程后,对地图中的其它的地理特征(例如:道路)与卫星图片进行对比,发现符合度较高。由此我们得出结论:Google Earth的图片叠加层是对图片的像素空间向地理空间的2D仿形变换。

1,从像素空间到地理空间的变换矩阵

计算机图形学给出2D仿形变换的公式为:

其中,(x, y) 为变换前的坐标,(x‘, y‘) 为变换后的坐标,3x3矩阵为变换矩阵。注意,变换矩阵的第3行为常数。

要求解变换矩阵,只需求解6个未知数m11、m12、...m23。如果已知3对变换点的坐标,代入上式,将会得到由6个线性方程构成的方程组,求解该方程组,即可得到变换矩阵。这也是前面添加图片叠加层时,需要对3个点进行定位的原因。

获得从像素空间向地理空间的变换矩阵后,就可计算出图片上任一点(像素)的地理坐标(经纬度)。

2,从像素空间到地理空间的变换矩阵的另一种求解方法

如果将Google Earth中的图片叠加层导出为KML(在“位置”面板中选中图片叠加层,然后点击菜单:文件->保存->将位置另存为),检查KML文件的内容,摘录如下:

 1         <GroundOverlay>
 2             <name>未命名图像叠加层</name>
 3             <Icon>
 4                 <href>http://imgbdb2.bendibao.com/szbdb/20143/20/201432014584100.jpg</href>
 5                 <viewBoundScale>0.75</viewBoundScale>
 6             </Icon>
 7             <LatLonBox>
 8                 <north>22.84065998787623</north>
 9                 <south>22.54036701934297</south>
10                 <east>113.9954174014041</east>
11                 <west>113.7305967071939</west>
12                 <rotation>1.042495828443866</rotation>
13             </LatLonBox>
14         </GroundOverlay>

根据KML文件规范,<LatLonBox>定义了图片叠加层的矩形边界框,其中<rotation>定义了相对于边界框中心点的旋转角度(以逆时针方向为正,单位为度)。根据KML边界框定义(包括旋转角度)也可以计算出变换矩阵。

我们将整个过程分解为以下“基本变换”:

(1)缩放

初始时,图像坐标系与地理坐标系重合,图像宽度为W、高度为H。将图像缩放到KML边界框的大小,即宽度为e-w、高度为n-s,其中,e为边界框右边经度(east)、w为左边经度(west)、n为上边纬度(north)、s为下边纬度(south),后同。

缩放的变换矩阵为:

(2)平移

将图片中心移动到原点,变换矩阵为:

(3)反射

由于像素空间的y轴方向与地理坐标系y轴方向相反,需要将图像相对于x轴反射,其变换矩阵为:

(4)旋转

绕原点按逆时针方向旋转角度θ,变换矩阵为:

(5)平移

将原点移动到KML边界框中心,变换矩阵为:

最终,从像素空间到地理空间的变换矩阵为 M=M5*M4*M3*M2*M1。

获得了 从像素空间到地理空间的变换矩阵后,即可将地理位置(经纬度)定位到图片上的像素。

3,从地理空间到像素空间的变换矩阵

从地理空间到像素空间的变换是从像素空间到地理空间的变换的逆运算。仿形变换的逆运算也是仿形变换,二者的变换矩阵互为逆矩阵。要计算从地理空间到像素空间的变换矩阵,可以使用上面第1节所介绍的求解线性方程组的方法。如果已知了从像素空间到地理空间的变换矩阵,也可以直接求逆矩阵,例如使用特征分解法。

时间: 2024-10-13 02:55:32

Google Earth 图片叠加Geo-referencing算法的相关文章

Google Earth数据存储、管理、表现及开发机制

一.    Google Earth(Map)介绍 1.1    Google Earth介绍 在众多的地理信息服务提供商中,Google是较早提供服务的一个,其他有如ESRI这样的巨头,也有中国的灵图.但凭借着提供优质.高效.高性价比服务的理念和Google自身的巨大影响力,Google推出的Google Earth和Google Map平台已经成为全球影响力最大的互联网空间信息服务平台. Google Earth具有十分突出的三个特点[1],一是可以显示矢量数据地标,包括点.线.面等几何类型

如何下载谷歌地球(Google Earth)中的卫星地图

一.准备工作 安装水经注万能地图下载器,如果没有安装本软件,可以百度"水经注软件"到官方网站下载. 二.下载地图 这里以下载"四川省"谷歌地球中的卫星地图为例. 启动水经注万能地图下载器,首先选择谷歌地球在线地图. 方法一:默认左下角已存在"谷歌地球",直接切换到"谷歌地球"即可,如下图. 方法二:直接选择"在线地图"->"卫星"->"卫星.谷歌地球",如

谷歌地球(Google Earth)卫片下载器优点

一.谷歌地球(Google Earth)卫片说明 1.全球卫星影像下载 本软件通过对Google Earth数据传输协议的完全解译,直接从Google Earth服务端下载数据,所下载的影像无Google水印标识. 2.数据无偏移 支持任意尺度任意幅面数据下载,且数据无偏移,无形变,无需人工纠偏或重新配准,极大节省人力成本. 3.数据投影简单 数据投影为最为常用的等经纬度投影(Geographic Lat/Lon) ,非web墨卡托投影,无需重投影,即可直接使用. 4.谷歌地球卫片下载器与谷歌卫

android图像处理系列之七--图片涂鸦,水印-图片叠加

图片涂鸦和水印其实是一个功能,实现的方式是一样的,就是一张大图片和一张小点图片叠加即可.前面在android图像处理系列之六--给图片添加边框(下)-图片叠加中也讲到了图片叠加,里面实现的原理是直接操作像素点.下面给出别外一种方式让图片叠加--用Canvas处理图片,canvas已经封装好了,直接调用就行. 下面看效果: += 代码: [java] view plain copy /** * 组合涂鸦图片和源图片 * @param src 源图片 * @param watermark 涂鸦图片

DWG/DGN格式导入Arcgis;转化为shp格式;更改地理坐标;导入Google Earth【转】

其实本来,我就是需要把一个autocad的dwg/dgn格式的东西导入到google earth里面:但是首先我对dwg/dgn格式的东西根本就不熟:其次我拿到的dwg/dgn格式文件是用的HK80 grid coordinate(香港80网格坐标系统):而google earth中用的是WGS84全球经纬度坐标系统.于是就有了上述题目中的流程. 1.dwg格式导入Arcgis 其实本来呢,我是想把dwg/dgn格式存成图片格式(tiff)的,然后用envi或者erdas在google eart

Google Earth与ArcGIS数据交互(三)

很多人都有过利用Google Earth遥感图进行二次创作的经历,他们大都采用直接截图的方式获取GE上面的遥感图,但这样做的缺点是谷歌的logo和一些辅助信息也被截了下来,这些水印似的信息会妨碍我们对遥感图像的解读.下面向大家介绍一种直接下载GE遥感图的方法,即通过GetScreen软件.这种方法的缺点是需要GE版本在5以下.我现在用的是"Google Earth(谷歌地球) Pro V4.2.0205.5730 Final 多国语言版". 使用方法: 1.打开GE,找到要下载的区域.

Google Earth Engine城市水体提取

Google Earth Engine城市水体提取 大家都知道城市水体提取相比较于山区,丘陵的地区,肯定是比较难的,为什么呢,因为城市水体有很多高层建筑导致的阴影,这个就非常复杂了,而且现在很多高分影像只有可见光和近红外波段,那么我们如何准确提取城市水体呢? Remoe Sensing2018年刊发了一篇城市水体高分影像自动提取算法(Two-Step Urban Water Index (TSUWI): A New Technique for High-Resolution Mapping of

Google Earth Pro免费许可证密匙

价值399美刀的谷歌地球专业版(Google Earth Pro)终于免费了,之前还是需要注册才能获得免费的正版序列号,现在谷歌则干脆地直接给了个全球通用的谷歌地球专业版注册码. 用户名: 填写你的邮箱地址,经测试随便一个邮箱都可以.[email protected] 许可证密匙: GEPFREE 最后点击[登录]就可以了,不用管"获得用户名""免费试用""立即购买"这些按钮.

从Google Earth 中下载三维模型

1.首先下载安装Google Earth和 Sketch Up (Sketch Up 201532位和64位下载地址:http://pan.baidu.com/s/1i3pCMjz) 2.由于国内限制google的访问,打开Google Earth后,选中模型无法获取其信息,所以这里提供一个Hosts文件,效果与FQ类似.将该文件替换 C:\Windows\System32\drivers\etc目录下的hosts文件(下载地址:http://pan.baidu.com/s/1c0cY43u).