win7中的mapgis中的投影变换用不了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了win7中的mapgis中的投影变换用不了相关的知识,希望对你有一定的参考价值。

在系统运行环境下执行一次Regsvr32C:\mapgis67\program\Dtbl32.ocx(假定mapgis安装在C盘)操作:点击【开始】>【运行】,在输入框中输入“Regsvr32C:\mapgis67\program\Dtbl32.ocx”点击【确定】运行即可。 参考技术A 解决方法如下:
1)可以根据坐标生成1:100万至1:500的标准图框和非标准图框.
2)可以根据图符号生成标准图框.
3)可以各类系统的坐标互转.
4)实测坐标根据坐标可以投影到图上.

OpenCV中的「透视变换 / 投影变换 / 单应性」—cv.warpPerspectivecv.findHomography

引言

图像的几何变换通常包括拉伸、缩放、扭曲和旋转等操作。

对于平面区域来说,分为两类几何转换:1

  • ⭐️仿射变换(affine transform),基于2x3矩阵进行变换。指图像可以通过一系列的几何变换来实现平移、旋转等多种操作。该变换能够保持图像的平直性和平行性。平直性是指图像经过仿射变换后,直线仍然是直线;平行性是指图像在完成仿射变换后,平行线仍然是平行线。
  • ⭐️透视变换(projective transform),基于3x3矩阵进行变换。透视变换将视锥体转换为长方体形状,视锥体的近端比远端小,具有扩大相机附近物体的效果。透视变换可以改变平行关系,将矩形映射为任意四边形。

透视变换通常被用于当作从特定角度观察三维平面的计算方法(非垂直观测),在三维视觉领域具有广泛的应用。

本文主要介绍opencv中的透视变换(projective transform)原理和代码。

透视变换(projective transform)

透视变换,又称为投影变换,是指将坐标为 ( X , Y , Z ) (X,Y,Z) (X,Y,Z)的物理点 Q Q Q映射到投影平面上坐标为 ( x , y ) (x,y) (x,y)的点 q q q的过程1


基本投影几何

将定义摄像机参数的矩阵(包含 f x , f y , c x , c y f_x,f_y,c_x,c_y fx,fy,cx,cy)称为摄像机的内参数矩阵(camera intrinsics matrix)。

物理世界中的点 Q Q Q投影到摄像机上的点 q q q的过程,可以用下式表示:

q = M ⋅ Q , 其 中 q = [ x y w ] , M = [ f x 0 c x 0 f y c y 0 0 1 ] , Q = [ X Y Z ] q=M\\cdot{Q},其中q= \\begin{bmatrix} x \\\\ y \\\\ w \\end{bmatrix} , M=\\begin{bmatrix} f_x & 0 & c_x \\\\ 0 & f_y & c_y \\\\ 0 & 0 & 1 \\end{bmatrix} ,Q=\\begin{bmatrix} X \\\\ Y \\\\ Z \\end{bmatrix} q=MQ,q=xyw,M=fx000fy0cxcy1Q=XYZ

单应性(Homography)

计算机视觉中,平面的单应性被定义为从一个平面到另一个平面的投影映射。(注:“单应性”在不同学科有不同含义,在数学上有更通用的意思。这里仅说明计算机视觉中的单应性。1

二维平面上的点映射到摄像机成像画面上的映射,就是平面单应性的典型例子。

利用齐次坐标,可以对物理世界的点Q到成像画面上的点q的映射进行表示:

q = s ⋅ M ⋅ W ⋅ Q q =s \\cdot{M}\\cdot{W} \\cdot{Q} q=sMWQ
其中,参数s表示尺度比例, M = [ f x 0 c x 0 f y c y 0 0 1 ] M=\\begin{bmatrix} f_x & 0 & c_x \\\\ 0 & f_y & c_y \\\\ 0 & 0 & 1 \\end{bmatrix} M=fx000fy0cxcy1 ,W表示旋转R和平移t的影响之和 W = [ R     t ] W = [R \\space\\space\\space t] W=[R   t],旋转矩阵 R = [ r 1 ⃗ r 2 ⃗ r 3 ⃗ ] R=\\begin{bmatrix} \\vec{r_1} & \\vec{r_2} & \\vec{r_3} \\end{bmatrix} R=[r1 r2 r3 ]

由于我们只关注这个物体平面,为了简化计算,令Z=0:
[ x y 1 ] = s ⋅ M ⋅ [ r 1 ⃗ r 2 ⃗ r 3 ⃗ t ⃗ ] ⋅ [ X Y 0 1 ] = s ⋅ M ⋅ [ r 1 ⃗ r 2 ⃗ t ⃗ ] ⋅ [ X Y 1 ] \\begin{bmatrix} x \\\\ y \\\\ 1 \\end{bmatrix} =s \\cdot{M}\\cdot{\\begin{bmatrix} \\vec{r_1} & \\vec{r_2} & \\vec{r_3} & \\vec{t} \\end{bmatrix}} \\cdot{\\begin{bmatrix} X \\\\ Y \\\\ 0 \\\\ 1 \\end{bmatrix}} =s \\cdot{M}\\cdot{\\begin{bmatrix} \\vec{r_1} & \\vec{r_2} & \\vec{t} \\end{bmatrix}} \\cdot{\\begin{bmatrix} X \\\\ Y \\\\ 1 \\end{bmatrix}} xy1=sM[r1 r2 r3 t ]mapgis arcmap数据转换投影变换误差校正坐标基础资料教程

MapGIS投影变换出错

MapGIS精品教程007:MapGIS投影变换案例教程

MAPGIS怎么把图从一万的放大到1千的或者5000的

如何使用mapgis软件制作比例尺

mapgis里1:5000的图怎么出成1:25000