Duanxx的图像处理学习: 透视变换

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

总的来说,透视变换是将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图像的整个流程。

二 数学介绍

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

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

时间: 2024-09-29 19:27:12

Duanxx的图像处理学习: 透视变换的相关文章

Duanxx的图像处理学习: 透视变换(二)

在<Duanxx的图像处理学习:透视变换(一)>中简要的说明了透视变化的算法,这里再进一步的对透视变换做说明. 基于前面的说明,可以很容易发现, 一个变换矩阵有如下你的分区特性: 一般来说,我有一个三维变换矩阵如下: 矩阵中的元素(p , q , r)取非全0时,能产生透视效果 一.一点透视 来看下面一张图: 现在是以z轴上的一点(0,0,d,1)为投影中心,计算P(x,y,z,1)点在XOY平面上的透视投影. 那么,现在很容易知道: 即: 这里取: 那么变换矩阵T,就为: 结果的其次坐标表示

Duanxx的图像处理学习: 透视变换(三)

我们常见的坐标系是笛卡尔坐标系,也就是在<Duanxx的图像处理学习:透视变换(一)>中提到的世界坐标系. 而从观察这的角度来看的话,就是<Duanxx的图像处理学习:透视变换(一)>中提到的摄像头坐标系. 在观察者坐标系(摄像头坐标系)中,我们一般以观察者(或者叫做视点)为观察者坐标系的原点,以观察点到物体的方向为z轴,以向左且与z轴垂直的方向为x轴,与x轴和y轴垂直向上的方向作为y轴,构成观察者坐标系. 因为本文所有的操作都是基于<Duanxx的图像处理学习:图像变换 三

Duanxx的图像处理学习: 图像变换 三维变换及其齐次坐标表示

Nani_xiao的图像处理学习笔记:透视变换(二):X,Y方向校正原理

接着上一篇进行,上一篇为: Nani_xiao的图像处理学习笔记:透视变换(一) 这里采用一点透视投影 X 方向校正 图2 是透视投影的灭点原理图.在不考虑其他畸变的情况下,边ab 和边cd 平行于X 轴, 而边ac 和边bd 则和X 轴成一定的夹角.根据a .b .c .d 点的图像坐标,可以求出透视投影的灭点e 的坐标(mx , my)(在图像坐标系下). 然后根据透视缩小效应, 对其进行反运算, 进行X 方向的校正.在X 方向的校正中, 可以选择图像高度(0- H - 1)任意一条水平线的

Nani_xiao的图像处理学习笔记:透视变换(三):校正步骤

接着上两篇进行: Nani_xiao的图像处理学习笔记:透视变换(一) Nani_xiao的图像处理学习笔记:透视变换(二):X,Y方向校正原理 图像透视变换校正步骤为: 1.      选取控制点的坐标: 2.      如果控制点存在倾斜现象, 则进行Y方向和X 方向错切: 3.      计算灭点的坐标(mx ,my ): 4.      进行X 方向的校正, 并输出校正后的图像: 5.      进行Y方向的校正, 并输出校正后的图像. 这里先把步骤列出,以后再根据实际效果补图

Duanxx的神经网络学习: 自己动手写神经网络(二) 前馈网络的实现

本文是继续Duanxx的神经网络学习: 自己动手写神经网络(一) 搭建一个简单的网络框架 写的第二篇文章,将神经网络的前馈网络实现并测试. 本文的代码下载地址 1 为神经元Neuron添加权Weight 在上一篇文章中,我已经搭起了一个神经网络的框架. 但是那只是一个框架而已,什么都没有是实现,而这个框架的最基本的东西就是神经元Nenron,这里就考虑将Neuron实现一下. 对于一个神经元而言,它的输入是上一层神经元的输出,可以不用太关心,它也有自己的输出outputvalue,同时,它还要控

MATLAB数字图像处理学习笔记

我们都知道一幅图片就相当于一个二维数组,可以用一个矩阵来表示,而MATLAB可以说就是为矩阵运算而生的,所以学习图像处理,学习MATLAB势在必行! 一. MATLAB基础知识 1. 读取图像 1 %imread ('filename') 2 f = imread ('lena,jpeg')%图片必须和工程在同一个目录下 3 f = imread ('E:\MATLAB\lena,jpeg')%加上路径进行读取图像操作 4 f = imread ('.\MATLAB\lena,jpeg')%读取

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

在进行图像处理算法中,往往需要生成图像像素矩阵,这对于C语言来说可以直接用数组表示,但是对于verilog来说便不是那么容易了,硬件描述语言不比软件,它的核心不再算法,而是在于设计思想,加速硬件.在进行图像的滤波算法时,需要生成3x3矩阵,而altera的IP shift_ram 简直就是为矩阵运算而生的.下面便进行shift_ram的学习. 手册还是尽量看英文原版的比较好,刚开始是会比较痛苦,看习惯了就会发现,就是那么一些熟悉的单词,句子也很好理解,比较手册又不是文章. 这段话的意思是,这个I

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

写在前面的话 数字图像处理系列的学习笔记是作者结合上海大学计算机学院<数字图像处理>课程的学习所做的笔记,使用参考书籍为<冈萨雷斯数字图像处理(第二版)(MATLAB版)>,同时学习过程中会参考网络学习资源.对于数字图像处理的学习不可能仅仅依靠作者所写的这一系列笔记,而是需要花时间和精力学习,本文只可作参考和交流之用.由于涉及此学科不久,在学习过程中难免存在错误,请读者不吝赐教. 数字图像处理绪论 数字图像处理(DIP)的研究目标和处理对象: DIP的研究目标是获取信息,处理对象是