各个坐标系之间的转化

三维视觉基础之世界坐标系、相机坐标系、图像坐标系和像素坐标系之间的转换关系 三维视觉基础之世界坐标系、相机坐标系、图像坐标系和像素坐标系之间的转换关系一、各坐标系介绍二、世界坐标系和相机坐标系之间的转换三、相机坐标系和图像坐标系之间的转换四、图像坐标系和像素坐标系之间的转换五、最终得到坐标系转化公式 一、各坐标系介绍 在学习立体视觉中,很多人都经常分不清各种坐标系之间的关系,如下图所示,这是世界坐标系、相机坐标系、图像坐标系和像素坐标系的示意图。 其中,Ow-Xw,Yw,Zw为世界坐标系,原点常被设定为机器人底座或执行机构末端,单位mm Oc-Xc,Yc,Zc为相机坐标系,原点为 阅读详情
/**
 * Created by jack on 2017/3/2.
 */
define(function(){
	//定义一些常量
	var x_PI = 3.14159265358979324 * 3000.0 / 180.0;
	var PI = 3.1415926535897932384626;
	var a = 6378245.0;
	var ee = 0.00669342162296594323;
	/**
	   * 百度坐标系 (BD-09) 与 火星坐标系 (GCJ-02)的转换
	   * 即 百度 转 谷歌、高德
	   * @param bd_lon
	   * @param bd_lat
	   * @returns {*[]}
	   */
	function bd09togcj02(bd_lon, bd_lat) {
		var x_pi = 3.14159265358979324 * 3000.0 / 180.0;
		var x = bd_lon - 0.0065;
		var y = bd_lat - 0.006;
		var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
		var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
		var gg_lng = z * Math.cos(theta);
		var gg_lat = z * Math.sin(theta);
		return [gg_lng, gg_lat]
	}
	/**
	 * 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换
	 * 即谷歌、高德 转 百度
	 * @param lng
	 * @param lat
	 * @returns {*[]}
	 */
	function gcj02tobd09(lng, lat) {
		var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);
		var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);
		var bd_lng = z * Math.cos(theta) + 0.0065;
		var bd_lat = z * Math.sin(theta) + 0.006;
		return [bd_lng, bd_lat]
	}
	/**
	 * WGS84转GCj02
	 * @param lng
	 * @param lat
	 * @returns {*[]}
	 */
	function wgs84togcj02(lng, lat) {
		if (out_of_china(lng, lat)) {
			return [lng, lat]
		}
		else {
			var dlat = transformlat(lng - 105.0, lat - 35.0);
			var dlng = transformlng(lng - 105.0, lat - 35.0);
			var radlat = lat / 180.0 * PI;
			var magic = Math.sin(radlat);
			magic = 1 - ee * magic * magic;
			var sqrtmagic = Math.sqrt(magic);
			dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
			dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
			var mglat = lat + dlat;
			var mglng = lng + dlng;
			return [mglng, mglat]
		}
	}
	/**
	 * GCJ02 转换为 WGS84
	 * @param lng
	 * @param lat
	 * @returns {*[]}
	 */
	function gcj02towgs84(lng, lat) {
		if (out_of_china(lng, lat)) {
			return [lng, lat]
		}
		else {
			var dlat = transformlat(lng - 105.0, lat - 35.0);
			var dlng = transformlng(lng - 105.0, lat - 35.0);
			var radlat = lat / 180.0 * PI;
			var magic = Math.sin(radlat);
			magic = 1 - ee * magic * magic;
			var sqrtmagic = Math.sqrt(magic);
			dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
			dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
			mglat = lat + dlat;
			mglng = lng + dlng;
			return [lng * 2 - mglng, lat * 2 - mglat]
		}
	}
	function transformlat(lng, lat) {
		var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));
		ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
		ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0;
		ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0;
		return ret
	}
	function transformlng(lng, lat) {
		var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));
		ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
		ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0;
		ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0 * PI)) * 2.0 / 3.0;
		return ret
	}
	/**
	 * 判断是否在国内,不在国内则不做偏移
	 * @param lng
	 * @param lat
	 * @returns {boolean}
	 */
	function out_of_china(lng, lat) {
		return (lng < 72.004 || lng > 137.8347) || ((lat < 0.8293 || lat > 55.8271) || false);
	}
	return {
		wgs84ToGcj:wgs84togcj02,
		wgs84ToBd:function(lng,lat){
			var p=wgs84togcj02(lng,lat);
			return gcj02tobd09(p[0],p[1]);
		},
		gcjToBd:gcj02tobd09,
		gcjToWgs84:gcj02towgs84,
		bdToGcj:bd09togcj02,
		bdToWgs84:function(lng,lat){
			var p=bd09togcj02(lng,lat);
			return gcj02towgs84(p[0],p[1]);
		}
	};
});

JS实现坐标系转换(wgs84、bd09ll、gcj02)百度、GPS、高德、腾讯地图相互转换 实现坐标系转换(wgs84、bd09ll、gcj02)百度、GPS、高德、腾讯地图相互转换 阅读详情

相关推荐

世界坐标系、相机坐标系和图像坐标系的转换

世界坐标系,相机坐标系和图像坐标系的转换

dididi的博客 2万+

JavaScript实现百度坐标系、火星坐标系、WGS84坐标系的互相转换

1. WGS84坐标系 WGS-84坐标系是目前最通用的标准地理坐标系,平实我们常说的经纬度、从GPS设备、智能手机中取出的数据的坐标系、国际地图提供商使用的坐标系都是WGS84坐标系。 WGS-84坐标系(World Geodetic System)是一种国际上采用的地心坐标系。坐标原点为地球质心,其地心空间直接坐标系的Z轴指向国际时间局(BIH)1984.0定义的协议地极(CTP)方向,X轴指向BIH1984.0的协议子午面和CTP赤道的交点,Y轴与Z轴、X轴垂直构成右手坐标系,称为1...

zhengjie0722的博客 8052

无人驾驶-控制-坐标系转化

无人驾驶-坐标系转化一、坐标系概念1.1 WGS-84坐标系1.1.1 简介1.1.2 角度范围1.1.3 基本参数1.1.4 坐标系图示1.2 ECEF地心坐标系1.2.1 简介1.2.2 坐标系图解1.3 ENU东北天坐标系1.3.1 简介1.3.2 坐标系图解1.3.3 UTM坐标系1.4 载体坐标系1.4.1 简介1.4.2 车辆坐标系1.4.3 S-L坐标系二、坐标系转化2.1 WGS84(LLA)-ECEF-ENU2.1.1 WGS84转ECEF2.1.2 ECEF转ENU2.2 ENU-ECE

weixin_47012067的博客 5327

地理坐标转换js

【代码】地理坐标转换js。

小方523的博客 814

世界坐标系、相机坐标系、图像坐标系、像素坐标系

四个坐标系都是什么? 图像处理、立体视觉等等方向常常涉及到四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系 构建世界坐标系只是为了更好的描述相机的位置在哪里,在双目视觉中一般将世界坐标系原点定在左相机或者右相机或者二者X轴方向的中点。 接下来的重点,就是关于这几个坐标系的转换。也就是说,一个现实中的物体是如何在图像中成像的。 四个坐标系之间的相互转换 1. 从世界坐标系到相机坐标系 其中[ x ′ , y ′ ] 为...

rukawashan的博客 2万+

雷达系统坐标系转化

雷达数据处理时经常会遇到坐标系转化的问题。一种常见的应用场景是已知雷达的经纬高,目标在大地坐标系下的xyz,需要解算出该目标在雷达坐标系下的xyz或RAE。 一、大地坐标系 大地坐标系是将地球看作椭球体,椭球球心即为坐标原点,地面上某点的位置用大地经度L、大地纬度B和大地高H 3个坐标分量来表示。其地面上一点的大地经度L为大地起始子午面与该点所在的子午面所构成的二面角,由起始子午面起算,向东为...

学习雷锋好榜样 1万+

proj4js空间坐标转换入门

WGS 84地理坐标系统 (EPSG:4326)中国国家2000地理坐标系统 (EPSG:4490)定义和WGS 84一样(CGCS2000椭球和WGS84椭球极为相似,偏差仅有0.11mm,完全可以兼容使用)北京54坐标系 (EPSG:4214)西安80坐标系 (EPSG:4610)UTM 50号带 / UTM zone 50N (EPSG:32650)中国国境跨UTM带号为43-53,根据需要更改+zone后面的数字即可。

2301_79959413的博客 1万+

相机标定总结(像素坐标系、图像坐标系、相机坐标系和世界坐标系之间的转换关系说明)

近期做了一些机器手臂和摄像头之间手眼标定的内容,在这里对相机的标定做一下总结,手眼标定内容后续更新。 1. 相机成像原理说明 数码相机图像拍摄的过程实际上是一个光学成像的过程。相机的成像过程涉及到四 个坐标系: 世界坐标系、 相机坐标系、 图像坐标系、 像素坐标系以及这四个坐标系的转 换。 相机模型是光学成像模型的简化, 最基本的透镜成像原理如图1 所示: 图1透镜成像过程 其中 u 为物距, f 为焦距, v 为相距。 三者满足关系式:

qq_35250841的博客 1万+

unity的几种坐标系及他们之间的转换

在谈unity各种坐标系之前,我一直很好奇unity为什么要有这么多坐标系搞的很麻烦,其实unity这么坐标系是为了解决麻烦,试想计算你和你同桌的位置,要先得到你们各自在世界中的位置,然后在计算相对位置,其实完全没有这个必要,这也是unity为什么会有这么多坐标系的原因 1.word space (世界坐标系) 当我们向场景中添加物体时,他们都是以世界坐标系的方式的方式显示在场景中的,通过tr

bouquet12138的博客 6725

三种常见经纬度坐标系的转化

三种常见经纬度坐标系的转化 我们常用的地图api坐标系有wgs84坐标系,gcj02坐标系,bd09坐标系。 wgs坐标系是国际上通用的坐标系,也称地球坐标系,gps和北斗系统都使用的是wgs坐标系。谷歌地图使用的是wgs坐标系(中国部分除外),openstreetmap使用的也是这种坐标系 gcj02坐标系是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系,也称火...

wtj的博客 3万+

【自动驾驶】19.自动驾驶各个坐标系

WGS84 : 世界坐标系,即经纬高坐标系(经度(longitude),纬度(latitude)和高度(altitude)LLA坐标系 UTM: 世界坐标系 ENU: 世界坐标系,东北天 ENU 和 UTM 的区别: ENU局部坐标系采用三维直角坐标系来描述地球表面,实际应用较为困难,因此一般使用简化后的二维投影坐标系来描述。 UTM: 在众多二维投影坐标系中,统一横轴墨卡托(The Universal Transverse Mercator,UTM)坐标系是一种应用较为广泛的一种。 UTM坐标系

u011754972的博客 1万+

常用的地图坐标系及它们之间的转换

常用的坐标系和这些坐标系之间的相互转换

qq_53987671的博客 3225

立体视觉中各个坐标系

一,标定原理 相机标定简单来说是从世界坐标系转换到图像坐标系的过程,也就是求最终的投影矩阵的过程。 基本的坐标系:世界坐标系、相机坐标系、成像平面坐标系、像素坐标系。 一般来说,标定的过程分为两个部分: 1、从世界坐标系转到相机坐标系,这一步是三维点到三维点的转换。 2、从相机坐标系转为像素坐标系,这一步是三维点到二维点的转换。 二、基本...

Ring__Rain的博客 2625

ThreeJS 坐标系转化

ThreeJS 坐标系转化(屏幕坐标与世界坐标互转)

Define_best的博客 3988

坐标系变换

坐标系变换坐标系变换 不考虑平移 加入平移 齐次坐标系与平移 追溯过程 矩阵变换坐标系变换 or 位置变换 移动的坐标系 Think an invertible matrix as a coordinate. 坐标系变换,例如,现在有一个点P,在A坐标系中的坐标为(x,y)(x,y),如何求出点P在其他坐标系下的坐标呢?比如,我们想知道P点在B坐标系中的坐标? 做个类比,如果两个讲不同母语

unclerunning的博客 4万+

不使用任何第三方库,纯JavaScript代码实现WGS-84坐标系到高德坐标系(GCJ-02)的转换

WGS-84(World Geodetic System 1984)是一个由美国国防部、国家海洋和大气管理局(NOAA)以及其他合作伙伴共同开发的地球大地测量系统,于1984年发布。它是一种地理坐标系,用于定义地球表面上的点的位置。WGS-84坐标系的原点位于地球质心,其基准椭球面参数为:长半轴a=6378137米,短半轴b=6356752.3142米,扁率f=(a-b)/a=1/298.257223563。WGS-84坐标系在全球范围内广泛使用,包括GPS定位系统、航空航天领域、地图制图等应用。

GIS技术方向,GIS地图技术分享(GIS入门、Openlayers教程、Leaflet教程),做最好的GIS地图开发教程。关注博主公众号:eguid 3005

OpenCV学习之世界坐标系、相机坐标系、图像坐标系和像素坐标系之间的转换关系

一、各坐标系介绍图像处理、立体视觉经常涉及到世界坐标系、相机坐标系、图像坐标系和像素坐标系。如下图所示:世界坐标系是为了确定相机的位置,在双目视觉中一般将世界坐标系原点定在左相机、右相机或两者X轴方向的中点。下面是各坐标系之间的装换,换而言之,就是一个现实中的物体是如何在图像中成像的。二、世界坐标系和相机坐标系之间的转换从世界坐标系到相机坐标系,设计到物体的旋转和平移。绕着不同的坐标轴旋转不同的角...

xueluowutong的博客 6万+

别再乱提MR了!手把手教你配置GitLab的CI/CD与分支保护规则,让团队协作更丝滑

本文详细介绍了如何配置GitLab的CI/CD与分支保护规则,以优化团队协作流程。通过设置Protected Branches、MR流水线检查和自动化审批规则,有效防止不规范操作和合并冲突,提升开发效率与代码质量。特别强调MR(Merge Request)的正确使用,确保团队协作更丝滑。

weixin_28840591的博客 234

快速理解视觉常见的各个坐标系

在各种计算机视觉的引用中,常常提到下面多个坐标系:世界坐标系,相机坐标系,图像坐标系,像素坐标系。本文将介绍各个坐标系所代表的意义,帮助大家更好的理解计算机视觉。

HanWenKing的博客 4952

基于的公司考勤系统(程序+开题报告)(开题报告+源码)

我们将研究和设计系统的架构和功能模块,包括员工信息管理模块、部门信息管理模块、考勤信息记录模块、工资信息计算模块、请假信息处理模块、奖惩信息管理模块、公告信息发布模块、上班打卡模块以及加班申请模块等。目的: 本项目旨在设计并实现一个基于的公司考勤系统,通过该系统,可以实现对员工、部门信息、考勤信息、工资信息、请假信息、奖惩信息、公告信息、上班打卡、加班申请等功能的统一管理。基于的公司考勤系统的设计与实现,旨在通过自动化技术提高考勤管理的效率和准确性,为企业管理提供有力的数据支持。最终成品以下面运行环境。

迟限程序设计 997

基于SHIS凝视型短波红外高光谱相机(900-1700nm)区分不同宝石的差异性和可分性(宝石分选)

SHIS系列凝视型高光谱相机基于液晶可调谐滤波器(LCTF),通过电控LCTF进行连续细分窄波段分光,对每个波段进行高分辨率的二维面阵成像,进行图像处理后,获得完整的高光谱高清图像序列。具有低功耗、小型化、使用方便和易于扩展的优势。其工作波段覆盖400nm至1000nm,能够捕捉宝石在不同波长下的光谱特征,为宝石鉴定提供了新的工具。

wayho的博客 709
上一篇: web实现地图画标识物
下一篇: 用百度地图api计算两个地方的距离
JackRenEngineer
博客等级 码龄10年 37粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值