智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 29600|回复: 63
打印 上一主题 下一主题

关于梯形失真的解决

    [复制链接]

44

主题

1485

帖子

0

精华

版主

早川队队长

Rank: 9Rank: 9Rank: 9

积分
20210

资源大师奖章论坛骨干奖章推广达人奖章论坛元老奖章活跃会员奖章优秀会员奖章在线王奖章优秀版主奖章

QQ
威望
5864
贡献
12698
兑换币
630
注册时间
2009-8-18
在线时间
824 小时
跳转到指定楼层
1#
发表于 2011-12-1 23:45:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sonwendi 于 2011-12-1 23:50 编辑

看到有同学问这个问题,之前我发过帖子详细讲了桶形失真的解决方法,接下来简单的讲解一下梯形的解决:
我先说一下我这个思路能达到的目的:将图像中黑线的坐标转换到实际的距离坐标,比如采集的图像中某一行黑线位置在3/4处,通过计算可以算出距离坐标原点(摄像头正下方处)Y=20CM,X=80CM,然后可以用算法优化路径。

图像采集中需要将3-D客观场景投影到2-D像平面。这个投影可用几何透视变换(也称为成像变换)描述(Fu,1987)。下图给出一个成像过程的几何模型示意图:




在图1里,设世界坐标系与摄像机坐标系重合,像平面坐标系x’y’与摄像机坐标系的xy平面重合(以下用xy表示x’y’),光轴与z轴重合。像平面中心位于原点处,镜头中心坐标(0,0, λ), λ是镜头的焦距。





(X,Y,Z)3-D空间中任意点W的世界坐标。由相似三角形可得:

则可得到空间3-D点投影后的像平面坐标:


这些等式是非线性的,因为其中含有变量Z。下面借助齐次坐标将它们表示成线性矩阵形式。


空间点坐标XYZ的齐次坐标定义为(kX,kY,KZ,k),其中k1个任意的非零常数。很明显,将齐次坐标变回笛卡尔坐标可用第4个坐标量去除前3个坐标量得到。这样1个笛卡尔坐标系中的点可用矢量形式表示为:

W=[X Y Z]T

其对应的齐次坐标可表示为:

Wh=[kX kY kZ k]T

如果定义透视变换矩阵为:






它和Wh的乘积PWh给出1个记为Ch的矢量:

这里Ch的元素是齐次形式的摄像机坐标,这些坐标可用Ch的第4项分别去除前3项转换成笛卡尔形式。所以,摄像机坐标系中任意一点笛卡尔坐标可表式成矢量形式:



在智能车路径识别中,摄像头坐标系与空间坐标系关系建立如下:



我再解释一下最后这个式子:计算X坐标用到一个负号,和减去一个2.4,是因为摄像头是倒装,摄像头成像4.8mm,减去中心计算的就是相对于中间的坐标。
可以借用MATLAB等工具解算出参数,直接带到单片机里面做运算~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

22

主题

124

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2257
QQ
威望
614
贡献
1505
兑换币
18
注册时间
2011-9-20
在线时间
69 小时
2#
发表于 2011-12-2 08:51:40 | 只看该作者
呵呵 有些 看不明白不过  就是强 这样是个办法 在研究研究
回复 支持 反对

使用道具 举报

2

主题

32

帖子

0

精华

高级会员

Rank: 4

积分
630
威望
402
贡献
140
兑换币
0
注册时间
2011-9-20
在线时间
44 小时
3#
发表于 2011-12-2 09:29:41 | 只看该作者
厉害啊,不过摄像头倒装是什么意思?如果正装的话呢
回复 支持 反对

使用道具 举报

184

主题

1972

帖子

0

精华

功勋会员

E=mc^2.0

Rank: 10Rank: 10Rank: 10

积分
15110

论坛骨干奖章活跃会员奖章优秀会员奖章资源大师奖章论坛元老奖章

威望
5404
贡献
8060
兑换币
1555
注册时间
2010-12-8
在线时间
823 小时
4#
发表于 2011-12-2 12:12:21 | 只看该作者
摄像头倒装?是不是为了时间分配?
回复 支持 反对

使用道具 举报

44

主题

1485

帖子

0

精华

版主

早川队队长

Rank: 9Rank: 9Rank: 9

积分
20210

资源大师奖章论坛骨干奖章推广达人奖章论坛元老奖章活跃会员奖章优秀会员奖章在线王奖章优秀版主奖章

QQ
威望
5864
贡献
12698
兑换币
630
注册时间
2009-8-18
在线时间
824 小时
5#
 楼主| 发表于 2011-12-2 15:37:30 | 只看该作者
回复 3# lzcangel


    倒着放是为了近处的先处理~边采集便提取黑线
回复 支持 反对

使用道具 举报

44

主题

1485

帖子

0

精华

版主

早川队队长

Rank: 9Rank: 9Rank: 9

积分
20210

资源大师奖章论坛骨干奖章推广达人奖章论坛元老奖章活跃会员奖章优秀会员奖章在线王奖章优秀版主奖章

QQ
威望
5864
贡献
12698
兑换币
630
注册时间
2009-8-18
在线时间
824 小时
6#
 楼主| 发表于 2011-12-2 15:38:24 | 只看该作者
回复 4# znfc2


    倒着放是为了近处的先处理~边采集便提取黑线
回复 支持 反对

使用道具 举报

184

主题

1972

帖子

0

精华

功勋会员

E=mc^2.0

Rank: 10Rank: 10Rank: 10

积分
15110

论坛骨干奖章活跃会员奖章优秀会员奖章资源大师奖章论坛元老奖章

威望
5404
贡献
8060
兑换币
1555
注册时间
2010-12-8
在线时间
823 小时
7#
发表于 2011-12-2 15:51:13 | 只看该作者
回复 6# sonwendi


   边采集边提取黑线?那时间够不够啊?提取更远的黑线貌似需要之前黑线的信息,算法神马的需要时间,或许我的代码效率太低了吧
回复 支持 反对

使用道具 举报

44

主题

1485

帖子

0

精华

版主

早川队队长

Rank: 9Rank: 9Rank: 9

积分
20210

资源大师奖章论坛骨干奖章推广达人奖章论坛元老奖章活跃会员奖章优秀会员奖章在线王奖章优秀版主奖章

QQ
威望
5864
贡献
12698
兑换币
630
注册时间
2009-8-18
在线时间
824 小时
8#
 楼主| 发表于 2011-12-2 22:11:00 | 只看该作者
回复 7# znfc2


    采集是近处隔的行数比较多,远处就基本上逐行采集了~所以近处可以边采集边提取黑线,当然如果你要用高级算法就不行了
回复 支持 反对

使用道具 举报

2

主题

32

帖子

0

精华

高级会员

Rank: 4

积分
630
威望
402
贡献
140
兑换币
0
注册时间
2011-9-20
在线时间
44 小时
9#
发表于 2011-12-2 22:40:41 | 只看该作者
公式Y,X的单位是厘米还是毫米啊
回复 支持 反对

使用道具 举报

44

主题

1485

帖子

0

精华

版主

早川队队长

Rank: 9Rank: 9Rank: 9

积分
20210

资源大师奖章论坛骨干奖章推广达人奖章论坛元老奖章活跃会员奖章优秀会员奖章在线王奖章优秀版主奖章

QQ
威望
5864
贡献
12698
兑换币
630
注册时间
2009-8-18
在线时间
824 小时
10#
 楼主| 发表于 2011-12-2 23:07:57 | 只看该作者
回复 9# lzcangel


    第一行讲得很清楚,目的是计算出厘米
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-4-25 17:19 , Processed in 0.076512 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表