当人用眼睛看事物的时候,会感觉到近处的东西是比远处的东西要大一些的,通俗的说,这就是透视。

总的来说。透视变换是将3D的世界转换到2D图像上的一种手段,人的视觉系统和摄像头视觉系统也是基于这一工作原理。

对透视变化的研究,就是要搞明确。为什么我们看到的东西会近处大而远处的小。

一 參考系

透视变换最主要是用于測量,因此在说明透视变换之前。有必要说明一下參考系的问题。

为了有效的分析3D世界。以下五种參考系是必要的:

1.        对象參考系(Object)

有时候也叫做本地參考系(Local Coordinate Systems),能够将其粗鲁的理解为视界中某个物体的以自己为中心的坐标系。其作用范围只在物体本身。比方,当我们在为某个物体建模的时候,我们必须找到一个点,用于将建模用的模块组装起来。

这是一个三维坐标系。

2.        世界參考系(World)

也被称为宇宙坐标系(universe Coordinate Systems),这个坐标系是其它全部坐标系的基础,用于将其它的坐标系联系在一起。

这是一个三维坐标系。

3.        摄像头參考系(Camera)

一般来说,为了简化模型,我们会如果所使用的摄像头为针孔摄像头,而图像平面被觉得是在焦点前(相机中心)。

摄像头參考系为右手坐标系。而且将Z轴指向图像平面,见下图:

这是一个三维坐标系。




4.        图像參考系(Image Plane)

图像參考系就是在摄像头中的投影面,一般来说,图像參考系的中点就是相应摄像头的焦点的位置,图像平面和摄像头中心的距离为焦距,这个平面会和摄像头的Z轴垂直。

这个參考系的

这是一个二维坐标系。

5.        像素參考系(Pixel)

和图像參考系一样,这也是一个二维的坐标系,在像素參考系中的每一个点都有和图像參考系中有相应关系。

五个坐标系之间的空间关系:

这5个參考系之间的转换关系如此下:


上图就是从3D场景转换到2D图像的整个流程。

二 数学介绍


由这个图能够非常easy知道
当Y不变时,Z向左移动后。Z会变大
那么y就会变小
这就是为什么我们看物体会产生近大远小
的透视效果。

三 世界坐标系到摄像头坐标系

四 摄像头坐标系到图像坐标系

Duanxx的图像处理学习: 透视变换(一)的更多相关文章

  1. OpenCV图像处理学习笔记-Day1

    OpenCV图像处理学习笔记-Day1 目录 OpenCV图像处理学习笔记-Day1 第1课:图像读入.显示和保存 1. 读入图像 2. 显示图像 3. 保存图像 第2课:图像处理入门基础 1. 基本 ...

  2. OpenCV图像处理学习笔记-Day03

    OpenCV图像处理学习笔记-Day03 目录 OpenCV图像处理学习笔记-Day03 第31课:Canny边缘检测原理 第32课:Canny函数及使用 第33课:图像金字塔-理论基础 第34课:p ...

  3. OpenCV图像处理学习笔记-Day4(完结)

    OpenCV图像处理学习笔记-Day4(完结) 第41课:使用OpenCV统计直方图 第42课:绘制OpenCV统计直方图 pass 第43课:使用掩膜的直方图 第44课:掩膜原理及演示 第45课:直 ...

  4. 深刻认识shift_ram IP core——图像处理学习笔记

    在进行图像处理算法中,往往需要生成图像像素矩阵,这对于C语言来说可以直接用数据表示,但是对于verilog来说便不是那么容易了,硬件描述语言不比软件,它的核心不再算法,而是在于设计思想,加速硬件.在进 ...

  5. MATLAB数字图像处理学习笔记

    我们都知道一幅图片就相当于一个二维数组,可以用一个矩阵来表示,而MATLAB可以说就是为矩阵运算而生的,所以学习图像处理,学习MATLAB势在必行! 一. MATLAB基础知识 1. 读取图像 %im ...

  6. 数字图像处理学习笔记之一 DIP绪论与MATLAB基础

    写在前面的话 数字图像处理系列的学习笔记是作者结合上海大学计算机学院<数字图像处理>课程的学习所做的笔记,使用参考书籍为<冈萨雷斯数字图像处理(第二版)(MATLAB版)>,同 ...

  7. CS131&Cousera图像处理学习笔记 - L4&W2滤波和卷积

    cs131: http://vision.stanford.edu/teaching/cs131_fall1617/ coursera: https://www.coursera.org/learn/ ...

  8. OpenCV 图像处理学习笔记(一)

    解读IplImage结构 typedef struct _IplImage { int nSize;                    /* IplImage大小 */ int ID;       ...

  9. Duanxx的STM32学习:STM32命名规则

随机推荐

  1. Android textview 设置不同的字体大小和颜色

    在实际应用中,需要将一个字符串已不同的颜色,字体显示出来.当然完全可以通过不同textview拼接出来.也可以通过一个textview来展示. 步骤如下: 1.定义不同style . 不妨如下定义2个 ...

  2. raphael 支持group(简)

    raphael 不支持group,里面有的set方法,只是把对象数组存起来,方法调用的时候,遍历都调用下,但是在实际需求上面感觉group还是瞒有用处的,可以控制group下面的节点的交互 比如地图区 ...

  3. 限制Inactive物料录入BOM

    应用 Oracle Bill Of   Materiel 层 Level Function 函数名 Funcgtion Name CUX_BOMFDBOM 表单名 Form Name CUXBOMFD ...

  4. 面向对象程序设计-C++_课时26拷贝构造Ⅰ_课时27拷贝构造Ⅱ

    一旦写了一个类,给它3个函数: 1default construtor 2virtual destructor 3copy constructor Constructions vs. assignme ...

  5. python 【第四篇】:面向对象(一)

    1.前言 提笔忘字,感慨良多!python自习前前后后有一年多了吧,貌似花了不少时间,其实没学到啥东西,都是在面向对象编程之前基础知识这块一直打转转,每次到了面向对象这块就感觉很蒙,看两天直接放弃,从 ...

  6. Saiku国际化总结

    国际化步骤: 1.在mondrian.properties同路径下加上locale_zh_CN.properties资源文件,内容例如:schema.name.K12UserAnalysis=K12用 ...

  7. sass的cd进入目录

    今天在弄sass安装进入项目文件命令 直接f:

  8. Android入门第十六篇之Style与Theme [转]

    本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 越来越多互联网企业都在Android平台上部署其客户端,为了提升用户体验,这些客户端都做得布局合理而且美观.. ...

  9. Canvas标签初探

    学了一点基础知识,感觉好神奇,全部练习代码 <html> <head> <meta http-equiv=Content-Type content="text/ ...

  10. android入门——UI(3)

    Spinner控件   ListView控件 一.Spinner控件 点击Spinner会弹出一个包含所有可选值的dropdown菜单,从该菜单中可以为Spinner选择一个新值. 有两种指定数据源的 ...