精华内容
下载资源
问答
  • 投影变换

    2016-06-17 18:32:06
    投影变换(projection transformation)是将一种地图投影点的坐标变换为另一种地图投影点的坐标的过程。研究投影点坐标变换的理论和方法。 投影变换编辑 在常规编图作业中,为将基本制图资料转绘到新编图经纬网中...

    投影变换(projection transformation)是将一种地图投影点的坐标变换为另一种地图投影点的坐标的过程。研究投影点坐标变换的理论和方法。

    投影变换编辑

    在常规编图作业中,为将基本 制图资料转绘到新编图经纬网中,常用照相、缩放仪、 光学投影和网格等转绘法,以达到 地图投影变换的目的。目前基本方法为:
    ①解析变换法。即找出两投影间的解析关系式。通常有反解变换法,或称间接变换法;即{xi,yi}→{i,λi}→{Xi,Yi};正解变换法,或称直接变换法,即{xi,yi}→{Xi,Yi};
    ②数值变换法。根据两投影间的若干 离散点或称共同点,运用数值逼近理论和方法建立它们间的 函数关系,或直接求出变换点的坐标;
    ③数值解析变换法。将上述两类方法相结合,即按 数值法实现{xi,yi}→{i,λi}的变换,再按 解析法实现{i,λi}→{Xi,Yi}的变换。
    随着计算机辅助建立 地图数学基础地图投影变换软件研究的深入,进一步开拓了 数学地图学的应用领域。其中计算机辅助地图投影变换将代替传统的变换方法,将是制图生产中具有突破性的变革。
    地图投影变换是 地图投影地图编绘的一个重要组成部分,它主要研究从一种地图投影变换成另一种地图投影的理论和方法。其实质是建立两平面场之间及 邻域双向连续点的一一对应关系。
    实现一种地图投影点的 坐标变换为另一种地图投影点的坐标,目前通常有如下三种方法:
    1.解析变换法
    2.数值变换法
    3.数值-解析变换法

    投影变换种类

    编辑
    ArcGIS投影变换
    ArcToolBox投影变换
    ArcToolBox -> Data Management Tools -> Projections and Transformations
    a) Define Projection
    b) Feature -> Project
    c) Raster -> Project Raster
    d) Create Custom Geographic Transformation
    当数据没有任何空间参考显示为Unknown时
    (1)利用Define Projection 给数据定义一个Coordinate System
    (2)利用Feature -> Project 或 Raster -> Project Raster 对数据进行投影变换
    我国经常使用的投影坐标系统为北京54、西安80,由这两个坐标系统变换到其他坐标系统下时,通常需要提供一个Geographic Transformation,因为Datum 椭球体改变了。这里就用到常说的转换3参数、转换7参数。
    PS: 我们国家的转换参数是保密的,可以自己计算或在购买数据时向国家测绘部门索要。
    (3)知道转换参数后,利用Create Custom Geographic Transformation定义一个地理变换方法,变换方法可以根据3参数或7参数选择基于GEOCENTRIC_TRANSLATION 和 COORDINATE 方法。这样就完成了数据的投影变换!数据本身坐标系统发生了变化。
    ArcMap投影变换
    投影变换工作也可以在 ArcMap中通过改变Data 的Coordinate System来实现,做完后按照 Data 坐标系统导出数据即可。
    具体如下(经纬度 -> 平面):
    (1)加载要转换的数据,右下角为经纬度
    (2)查看数据属性,选择Coordinate System选项卡
    (3)导入或选择正确的坐标系,确定。此时,ArcMap右下角数据的显示坐标发生了变化,但数据本身没改变还需要进行最后一步。
    (4)选择数据右键-> Export,选择第二个(数据框架),导出数据即可。

    展开全文
  • 图像投影变换

    2018-09-05 21:01:19
    通过c++语言搭建图像投影变换库的框架,为方便用户进行投影变换函数的调用,库的框架在readme.md文件中
  • mapgis投影变换

    2014-03-02 19:12:43
    mapgis投影变换-生成标准图框使用方法
  • 栅格批量投影变换.tbx

    2021-02-27 00:08:37
    栅格批量投影变换
  • 地图投影变换代码

    2014-12-24 23:56:33
    对于中国一张地图进行兰勃特投影变换,世界的地图进行墨卡托投影变换
  • arcgis 投影变换

    千次阅读 2020-12-08 16:59:32
    目录 1、目的: 2、背景知识: 2.1、地理坐标系统与投影坐标系统的区别(看单位) 地理坐标系统 投影坐标系统 ...参考:坐标系统与投影变换及在ARCGIS中的应用(https://blog.csdn.net/jax_lee/a.

    目录

    1、目的:

    2、背景知识:

    2.1、地理坐标系统与投影坐标系统的区别(看单位)

    2.2、arcgis中“定义投影”与“投影”或者“投影栅格”的区别

    2.3、中国常用的投影坐标系统

    3、投影转换方法


    1、目的:

    使用arcgis转换文件投影。

    WCS_WGS_1984 转成 Krasovsky_1940_Albers

    2、背景知识:

    参考:(太细,太专业)坐标系统与投影变换及在ARCGIS中的应用(https://blog.csdn.net/jax_lee/article/details/6764516

    2.1、地理坐标系统与投影坐标系统的区别(看单位)

    参考:(两者区别)ArcGIS教程:ArcGIS中的坐标系统定义与投影转换(https://blog.csdn.net/neimeng0/article/details/81557851

    • 地理坐标系统

    地理坐标系 (GCS) 使用三维球面来定义地球上的位置。单位为度(arcgis右击-属性-源,可以查看)

    GCS中的重要参数包括角度测量单位、本初子午线和基准面(基于旋转椭球体)。

    举例:GCS_WGS_1984


    • 投影坐标系统

       将球面坐标转化为平面坐标的过程称为投影。投影坐标系的实质是平面坐标系统,地图单位通常为米

    投影坐标系在二维平面中进行定义。与地理坐标系不同,在二维空间范围内,投影坐标系的长度、角度和面积恒定。投影坐标系始终基于地理坐标系,即:

        “投影坐标系 = 地理坐标系+投影算法函数”。

    举例:Krasovsky_1940_Albers

    投影是 Albers,基于的地理坐标系统是 GCS_Krasovsky_1940


    2.2、arcgis中“定义投影”与“投影”或者“投影栅格”的区别

    • 定义投影

    文件具有投影信息,(你知道是啥)但是丢失了,使用“定义投影”工具添加投影。

    相当于贴标签。(慎用,小心乱用)


    • 投影

    (1)文件只有地理坐标系统,没有投影坐标系统。可已使用此工具,添加一个投影坐标系统。

    (2)文件投影不符合绘图要求,需要转换。使用此工具。(本文就是此需求)

    (3)文件有投影坐标系统,但是不想要,文件只保留地理坐标系统就行。也可以使用改工具转换。

    2.3、中国常用的投影坐标系统

    参考:(文章投稿常用投影)中国地图标准坐标和投影参数(附ArcGIS操作)(https://blog.csdn.net/Jinhua_Wu/article/details/88369796

    • 地理坐标

      GCS_Krasovsky_1940(克拉索夫斯基_1940椭球体)
      具体参数如下图:
            在这里插入图片描述
            背景知识:(参考自https://blog.csdn.net/jax_lee/article/details/6764516
      每个国家或地区都有各自的基准面,我们通常所说的北京54坐标系、西安80坐标系实际上指的是我国的两个大地基准面。
      我国参照前苏联从1953年起采用克拉索夫斯基(Krassovsky)椭球体建立了我国的北京54坐标系,1978年采用国际大地测量协会推荐的1975地球椭球体(IAG75)建立了我国新的大地坐标系西安80坐标系。目前大地测量基本上仍以北京54坐标系作为参照。
      WGS1984基准面采用WGS84椭球体,它是一地心坐标系,即以地心作为椭球体中心,目前GPS测量数据多以WGS1984为基准。


    • 投影坐标

      Krasovsky_1940_Albers
      (阿尔伯斯投影,又名“正轴等积割圆锥投影”、 “双轴纬线等积圆锥投影”,即经过两次纬线校正)


    3、投影转换方法

    第一步:数据管理工具-投影和变换-创建自定义地理(坐标)变换

    因为两者地理坐标系统不一样,需要创建此变换。用做栅格投影的输入参数。


    第二步:数据管理工具-投影和变换-栅格-投影栅格


    第三步:右击文件-属性-源-查看坐标

     

     

    展开全文
  • OpenCV : 投影变换

    千次阅读 2020-03-21 21:11:15
    投影变换 物体在三维空间发生了旋转,叫做投影变换.由于可能出现阴影或遮挡,所以变换后较难复原.如果物体时平面的,就可以通过投影变换物体三维变换进行模型化,这叫做专用的二维投影变换. 矩阵表示: [x~y~z~]=[a11a12...

    投影变换

    物体在三维空间发生了旋转,叫做投影变换.由于可能出现阴影或遮挡,所以变换后较难复原.如果物体时平面的,就可以通过投影变换物体三维变换进行模型化,这叫做专用的二维投影变换.

    矩阵表示:
    [ x ~ y ~ z ~ ] = [ a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ] [ x y z ] \left[\begin{matrix}\tilde{x} \\ \tilde{y}\\ \tilde{z}\end{matrix}\right] = \left[\begin{matrix}a_{11} & a_{12} & a_{13}\\a_{21} & a_{22}& a_{23}\\ a_{31} & a_{32} & a_{33}\end{matrix}\right] \left[\begin{matrix}x \\ y \\ z\end{matrix}\right] x~y~z~=a11a21a31a12a22a32a13a23a33xyz

    求投影矩阵

    • getPerspectiveTransform(src, dst)
      1. src : 原坐标
      2. dst : 变换后的坐标
      3. 返回结果为:3x3的投影矩阵,数据类型为CV_64F

    计算投影矩阵

    #include<iostream>
    #include<opencv2/core.hpp>
    #include<opencv2/highgui.hpp>
    #include<opencv2/imgproc.hpp>
    
    using namespace cv;
    using namespace std;
    
    int main()
    {
    	//原坐标
    	Point2f src[] = { Point2f(0, 0), Point2f(20, 0), Point2f(0, 20), Point2f(20, 20) };
    	//投影后的坐标
    	Point2f dst[] = { Point2f(10, 20),Point2f(20, 2), Point2f(50, 70), Point2f(25, 7) };
    	Mat P =getPerspectiveTransform(src, dst);
    	cout << P << endl;
    	return 0;
    }
    
    #include<iostream>
    #include<opencv2/core.hpp>
    #include<opencv2/highgui.hpp>
    #include<opencv2/imgproc.hpp>
    
    using namespace cv;
    using namespace std;
    
    int main()
    {
    	//原坐标
    	Mat src = (Mat_<float>(4, 2) << 0, 0, 20, 0, 0, 20, 20, 20);
    	//投影后的坐标
    	Mat dst = (Mat_<float>(4, 2) << 10, 2, 20, 2, 5, 7, 25, 7);
    	Mat P =getPerspectiveTransform(src, dst);
    	cout << P << endl;
    	return 0;
    }
    

    图像的投影变换

    • warpPerspective(Mat src, Mat dst, Mat P, Size dsize)
      1. src : 原图
      2. dst : 输出图片
      3. P : 投影矩阵
      4. dsize : 输出图像大小
    • circle(Mat img, Point center, int radius, const Scalar & color, int thickness=1, int lineType=8, int shift=0)
      1. img : 图像矩阵(2d)
      2. center : 圆心坐标
      3. radius : 半径长度
      4. color : 颜色
      5. thickness : 线的粗细
      6. lineType : 线的类型
    • OpenCV中其他类似的方法还有:rectangle, ellipse, line(矩形,椭圆,线段)
    #include<iostream>
    #include<opencv2/core.hpp>
    #include<opencv2/highgui.hpp>
    #include<opencv2/imgproc.hpp>
    
    using namespace cv;
    using namespace std;
    
    int main()
    {
    	Mat img = imread("./People/5g.jpg", 1);
    	Mat src = (Mat_<float>(4, 2)<< 0, 0, 1000, 0, 0, 1000, 1000, 1000);
    	Mat dst = (Mat_<float>(4, 2) << 0, 0, 1000, 0, 300, 1000, 600, 1000);
    	Mat P = getPerspectiveTransform(src, dst);
    	Mat O;
    	cout << "rows : " << img.rows << endl;
    	cout << "cols : " << img.cols << endl;
    	warpPerspective(img, O, P, img.size());
    	imshow("PerspectiveTransform", O);
    	waitKey(0);
    	return 0;
    }
    

    原图

    在这里插入图片描述

    投影后

    在这里插入图片描述

    通过鼠标点击事件,进行图像投影

    #include<iostream>
    #include<opencv2/core.hpp>
    #include<opencv2/highgui.hpp>
    #include<opencv2/imgproc.hpp>
    
    using namespace cv;
    using namespace std;
    
    Mat I_img;    // 输入图片
    Mat P_img;  // 投影后的图片
    Point2f src_point[4];    // 原坐标
    Point2f dst_point[4];    // 投影后的坐标
    int i = 0, j = 0;               // 记录点击次数
    Point2f point_i, point_p;
    
    // 同鼠标事件获得原图中坐标
    void mouse_I(int event, int x, int y, int flags, void* param)
    {
    	switch (event)
    	{
    	case CV_EVENT_LBUTTONDOWN:
    		point_i = Point2f(x, y);
    		break;
    	case CV_EVENT_LBUTTONUP:
    		src_point[i] = point_i;
    		circle(I_img, src_point[i], 7, Scalar(0), 3);   //画出点击的坐标
    		i += 1;
    		break;
    	default:
    		break;
    	}
    }
    
    // 在画布上选择投影后的坐标
    void mouse_pI(int event, int x, int y, int flags, void* param)
    {
    	switch (event)
    	{
    	case CV_EVENT_LBUTTONDOWN:
    		point_p = Point2f(x, y);
    		break;
    	case CV_EVENT_LBUTTONUP:
    		dst_point[j] = point_p;
    		circle(P_img, dst_point[j], 7, Scalar(0), 3);
    		j += 1;
    		break;
    	default:
    		break;
    	}
    }
    
    int main()
    {
    	I_img = imread("./People/5.jpg", CV_LOAD_IMAGE_GRAYSCALE);
    	if (!I_img.data)
    		return -1;
    	P_img = 255 * Mat::ones(I_img.size(), CV_8UC1);
    	namedWindow("Original Image");
    	setMouseCallback("Original Image", mouse_I, NULL);
    	namedWindow("Output Image");
    	setMouseCallback("Output Image", mouse_pI, NULL);
    	imshow("Original Image", I_img);
    	imshow("Output Image", P_img);
    	while (!(i == 4 && j == 4))
    	{
    		imshow("Original Image", I_img);
    		imshow("Output Image", P_img);
    		if (waitKey(50) == 'q')
    			break;
    	}
    	imshow("Original Image", I_img);
    	imshow("Output Image", P_img);
    	// 撤销鼠标事件
    	setMouseCallback("Original Image", NULL, NULL);
    	setMouseCallback("Output Image", NULL, NULL);
    	// 计算投影矩阵
    	Mat P = getPerspectiveTransform(src_point, dst_point);
    	// 投影变换
    	Mat R;
    	warpPerspective(I_img, R, P, I_img.size());
    	imshow("Persepctive Result", R);
    	waitKey(0);
    	return 0;
    }
    

    选择原坐标

    在这里插入图片描述

    选定投影后的坐标

    在这里插入图片描述

    投影后的图片

    在这里插入图片描述

    展开全文
  • OpenGL投影变换的文档

    2013-08-09 10:14:59
    关于三维投影变换的相关技术,关于三维投影变换的相关技术,关于三维投影变换的相关技术,关于三维投影变换的相关技术,
  • 投影变换程序

    2015-02-21 16:56:26
    vb编写的投影变换的小程序,代码很全,主要是各种坐标系统之间的变换
  • arc gis 投影变换

    2013-07-03 19:07:41
    arc gis软件的投影变换,包括各种投影方式
  • 地图投影变换详解

    2012-09-17 22:34:47
    地图投影变换详解ppt
  • 有关ArcGIS的坐标系统和投影变换的基础知识。
  • 圆柱形投影变换

    2014-12-09 15:22:22
    圆柱形投影变换,用于图像拼接等,文件包括几篇相关的论文和源代码
  • 投影变换与切变变换练习题精选.doc
  • 摄像机图像投影变换的研究,叶京立,刘岚,投影变换是三维图形显示的基础。本文介绍了投影变换在图形学中的地位,推导了摄像机高处摄像场景对应的投影变换矩阵,用VC 软件��
  • OpenGL渲染模型透视投影变换
  • 好吧,到这里认识到投影变换的感性认识了,那么你又会继续考虑下一个问题,在软件里怎么样计算呢,难道还是使用仿射变换的矩阵。从这里看一下,前面闽A比较大,后面88比较小,说明原本平行的两边已经不平行了。仿射...
  • 可以实现对栅格数据批量定义投影和投影变换的arcgis工具箱
  • 实验内容 1.在世界坐标系中定义一个立方体(由6个面组成),并给定观察点在世界坐标系中的位置(a,b,c)以及观察坐标系的方位角θ,俯仰角φ...2.学习透视投影变换的基本原理。 利使用VC6++ MFC编程,实现透视投影算法。
  • 论述了地图投影变换原理,为地图投影算法开发提供数学基础。
  • 计算机图形学投影变换 算法代码 希帮助望
  • Arcgis投影变换原理与应用讲解.pptx
  • 画法几何第3章 投影变换.pptx
  • 机械制图:ch02.6 投影变换.ppt

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 55,801
精华内容 22,320
关键字:

投影变换