逆透视变换程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

前段时间有人问了我这篇帖子([分享] 好久没有人发技术贴了,来个透视变 换与其逆变换的矩阵公式,打打鸡血),文中的方法很有道理,但却很复杂。 于是我想把我的方法写出来。
其中s是倍乘因子,m 指图像坐标系,M 指世界坐标系,[R|t]指线性变换矩 阵,A指相机内参数矩阵。
3
对于模型的一点解释
s · m 这个就是我们通常程序中对图像的贮存,即获得的二维数组,当然也 有些同学用一维数组表示。也许以后有同学能设计出一个数据结构呢。 A内 参 数 矩 阵 的 意 义 是 , 将 相 机 坐 标 系 转 换 为 像 平 面 坐 标 系 , 可 以 这 么 想 像,将一幅本来存在于芯片镜面上的图像转换为我们脑海里的数组。其实就是 转换坐标系,图像一开始在芯片以毫米英寸为单位,现在转换为以一个像素为 单位了。其实就像可以描述一个人为一米八,也可以描述为为九头身。 [R|t]就是我们所说的线性变换矩阵。关于这里的知识可以访问百度文库里 的这篇演示文档:图像处理之逆透视变换。 M’就是世界坐标系了。
.co
X 0
Y 0
1 0
0 X
0 Y
0 −xX 1 −yX
−xY −yY
H11 H12 H13 H21 H22 H23 H31 H32
m
= x y
6 代码ຫໍສະໝຸດ Baidu现
3
学过线性代数的我们知道,要有唯一解,需要保证增广矩阵为满秩, 即rank (A|B ) = 8。 那 么 就 需 要 四 组 不 相 关 的 图 像 坐 标 系 的 点 。 由 于世 界 坐 标系的点在标定的时候,我们是知道的。那么我们可以选择一个矩形的四个顶 点,将之代入上式即可。
具体代码实现在我以前的帖子里就有,这里我也不再赘述。逆透视变换的代 码。总之就一句话,保证全局有解再去追求迭代的快速。
.co
xXH31 + xY H32 + x − XH11 − Y H12 − H13 = 0 yXH31 + yY H32 + y − XH21 − Y H22 − H23 = 0
m
(1) (2)
(3) (4)
(5) (6)

→A·X =B
ww w.z ncz z
这 个 公 式 源 自 张 正 友 先 生 的 论 文 ,opencv里 也 有 引 用 。 这 里 讲 下 在 飞 思 卡 尔智能车的应用下的方式。 首先,一般智能车选择的是单目摄像头且不存在测距模块,无法获得一副图 像的深度图,那么自然而然,Z=0。 X x fx 0 cx r11 r12 r13 t1 Y s y = 0 fy cy r21 r22 r23 t2 0 1 0 0 1 r31 r32 r33 t3 1 f x 0 cx r11 r12 r13 t1 let H = 0 fy cy r21 r22 r23 t2 0 0 1 r31 r32 r33 t3 H11 H12 Don tCare H13 and H34 = H21 H22 Don tCare H23 H31 H32 Don tCare 1 又因为H33 可以归纳为s的一部分,即可得到最终我们需要的一个表达式。 x H11 H12 H13 X y = H21 H22 H23 Y s H31 H32 1 1
逆透视变换的一种方法
朱葛峻 2015年12月
1
写这篇文章的原因
ww w.z ncz z
2 数学模型
小孔摄像机数学模型: fx x s y = 0 1 0 0 fy 0 cx r11 cy r21 1 r31 r12 r22 r32 r13 r23 r33 针对以上模型,我们可以归纳为: s · m = A · [R|t] · M
1
.co
X t1 Y t2 Z t3 1
m
4
应用
ww w.z ncz z
5 演算
直到这里,这些都依旧是难以使用的东西。 x s y y= s x= 然后就可以得到 x= XH11 + Y H12 + H13 XH31 + Y H32 + 1 XH21 + Y H22 + H23 y= XH31 + Y H32 + 1 2
相关文档
最新文档