智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 52125|回复: 144
打印 上一主题 下一主题

关于桶形失真的矫正

    [复制链接]

44

主题

1485

帖子

0

精华

版主

早川队队长

Rank: 9Rank: 9Rank: 9

积分
20210

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

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

貌似还没有人发过这方面的帖子,不过我们之前用过这个技术,我也研究了一小下,公开一下吧:

我们都知道,镜头焦距越长可以看得视野越窄,但是图像越接近真实的;焦距越短,看的范围越大,但是失真越严重。
一般的,像我们比赛的话就只用考虑两种失真就够了:一是桶形失真;一个是梯形失真。

梯形失真我们都很熟悉,对于矩阵变换的公式也有很多,就不提了。
但是对于桶形失真这个不好解决,因为在摄像头的边缘位置图像被压缩得很厉害,造成看到的图像就不能按照梯形失真那一套来解决。
所以,在进行梯形变换之前要先进行桶形失真的矫正。

先看下效果(焦距1.8mm):

源图像:


校正后的图像:


另外一个(焦距2.1):





(第一幅图是完整的展开对应起来,第二幅图只要了原图的一部分,因为四个角的图像压缩太厉害,不好用)

这个原理并不难,像我们大学物理里面做的实验--牛顿环。
你可以认为两幅图片是经过一个函数建立起来的对应关系,而且校正以后的图上多个点可以对应原图上的一个点,所以会有校正后畸形的情况,但是这对于计算的误差很小,几乎可以忽略,所以可以认为误差是可以容忍的。
具体的原理因为有点烦,画图不好画,我就直接引用一篇论文,我也是看着这一篇和以前师兄留下的代码才做出来的:



矫正一块的matlab代码如下:


  1. for l1 = 1:(img_size(1)+cy*2)  % 垂直方向
  2.    
  3.     y = l1 - img_size(1)/2-cy;
  4.    
  5.     for l2 = 1:(img_size(2)+cx*2)  % 水平方向
  6.         
  7.         x = l2 - img_size(2)/2-cx;
  8.         
  9.         x1 = round( x * ( 1 + k1 * x * x + k1 * y * y ) );
  10.         x1_err =  x * ( 1 + k1 * x * x + k1 * y * y ) - x1;
  11.         y1 = round( y * ( 1 + k2 * x * x + k2 * y * y ) );
  12.         y1_err =  y * ( 1 + k2 * x * x + k2 * y * y ) - y1;
  13.         err = x1_err * x1_err + y1_err * y1_err;
  14.         y1 = y1 + img_size(1)/2;
  15.         x1 = x1 + img_size(2)/2;
  16.         
  17.         
  18.         if y1>0 && y1<(img_size(1)+1) && x1>0 && x1<(img_size(2)+1)
  19.             yy(y1,x1) = l1;
  20.             xx(y1,x1) = l2;
  21.             error(l1,l1) = err;   
  22.             counter(y1,x1)=counter(y1,x1)+1;
  23.             img_undist(l1,l2) = img_origin(y1, x1);
  24.         end
  25.     end
  26. end
复制代码

可以这样理解:点是通过函数对应,那么久一点一点的解算出校正以后的点在原图上的位置,搬运过来。
函数对应关系:


这样子,可以把图像校正以后做结算,用标定的方法算出黑线的真实距离,用真实的斜率来控制。

标定的完整matlab代码:

本帖子中包含更多资源

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

x

评分

3

查看全部评分

5

主题

366

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2124
威望
1227
贡献
555
兑换币
29
注册时间
2011-7-23
在线时间
171 小时
推荐
发表于 2012-1-28 19:10:26 | 只看该作者
帅啊。。。楼主太威武
回复 支持 0 反对 1

使用道具 举报

0

主题

3

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
415
威望
309
贡献
84
兑换币
4
注册时间
2011-3-22
在线时间
11 小时
推荐
发表于 2012-1-4 18:40:53 | 只看该作者
好东西……
回复 支持 0 反对 1

使用道具 举报

49

主题

3751

帖子

1

精华

顶级版主

Rank: 11Rank: 11Rank: 11Rank: 11

积分
27953

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

威望
10635
贡献
10966
兑换币
4566
注册时间
2010-11-23
在线时间
3176 小时
2#
发表于 2011-11-7 20:13:59 | 只看该作者
{:3_57:}
回复 支持 反对

使用道具 举报

282

主题

1780

帖子

1

精华

管理员

曾经的智能车人……

Rank: 11Rank: 11Rank: 11Rank: 11

积分
28420

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

QQ
威望
10441
贡献
11685
兑换币
4726
注册时间
2009-9-7
在线时间
3147 小时
3#
发表于 2011-11-7 20:36:34 | 只看该作者
回复 支持 反对

使用道具 举报

44

主题

1485

帖子

0

精华

版主

早川队队长

Rank: 9Rank: 9Rank: 9

积分
20210

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

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


    你们速度好快啊,有提醒新帖的工具么?
回复 支持 反对

使用道具 举报

44

主题

1485

帖子

0

精华

版主

早川队队长

Rank: 9Rank: 9Rank: 9

积分
20210

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

QQ
威望
5864
贡献
12698
兑换币
630
注册时间
2009-8-18
在线时间
824 小时
5#
 楼主| 发表于 2011-11-7 20:57:23 | 只看该作者
回复 3# 凌心


    好速度啊……
回复 支持 反对

使用道具 举报

49

主题

3751

帖子

1

精华

顶级版主

Rank: 11Rank: 11Rank: 11Rank: 11

积分
27953

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

威望
10635
贡献
10966
兑换币
4566
注册时间
2010-11-23
在线时间
3176 小时
6#
发表于 2011-11-7 21:33:19 | 只看该作者
巧合而已
回复 支持 反对

使用道具 举报

5

主题

126

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1284
威望
781
贡献
305
兑换币
87
注册时间
2011-8-13
在线时间
99 小时
7#
发表于 2011-11-7 21:48:58 | 只看该作者
回复 支持 反对

使用道具 举报

68

主题

718

帖子

0

精华

跨届大侠

火云邪神

Rank: 10Rank: 10Rank: 10

积分
6644

论坛元老奖章

QQ
威望
3359
贡献
2001
兑换币
765
注册时间
2011-8-24
在线时间
642 小时
8#
发表于 2011-11-7 22:10:28 | 只看该作者
必须顶啊
回复 支持 反对

使用道具 举报

39

主题

593

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1694
威望
989
贡献
401
兑换币
86
注册时间
2008-12-13
在线时间
152 小时
9#
发表于 2011-11-7 22:11:53 | 只看该作者
我觉得不用休整,又不是拍照。  失真反而有用,我当时做车时就是利用了这个失真。 比如同样的黑线与中线的偏差值,在摄像头看来会出现远处的偏差值“看”起来会小于近处偏差值这一结果。  这恰好符合车辆的控制原理。
回复 支持 反对

使用道具 举报

13

主题

177

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1886

优秀会员奖章活跃会员奖章

威望
755
贡献
903
兑换币
62
注册时间
2011-10-23
在线时间
114 小时
10#
发表于 2011-11-7 23:23:52 | 只看该作者
这个好东西啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-25 14:13 , Processed in 1.222503 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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