智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 51194|回复: 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

使用道具 举报

3

主题

127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1180
威望
533
贡献
409
兑换币
361
注册时间
2018-10-11
在线时间
119 小时
145#
发表于 2019-1-22 21:31:40 | 只看该作者
头像有点凶,知识带走
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
威望
180
贡献
112
兑换币
118
注册时间
2018-1-11
在线时间
35 小时
144#
发表于 2018-7-12 17:15:39 | 只看该作者
赞一个,大佬
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
威望
129
贡献
57
兑换币
68
注册时间
2018-1-13
在线时间
22 小时
143#
发表于 2018-2-26 16:39:27 | 只看该作者
资料在哪呀????
回复 支持 反对

使用道具 举报

8

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
622
威望
314
贡献
200
兑换币
203
注册时间
2017-1-31
在线时间
54 小时
毕业学校
皖西学院
142#
发表于 2017-3-11 21:27:22 | 只看该作者
大赞楼主,困扰许久了
回复 支持 反对

使用道具 举报

7

主题

166

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1206
威望
584
贡献
320
兑换币
377
注册时间
2016-12-10
在线时间
151 小时
毕业学校
豫东某校
141#
发表于 2017-3-2 21:51:37 | 只看该作者
谢谢分享
回复 支持 反对

使用道具 举报

1

主题

24

帖子

0

精华

高级会员

Rank: 4

积分
517
威望
258
贡献
155
兑换币
167
注册时间
2016-1-20
在线时间
52 小时
140#
发表于 2016-6-13 00:42:10 | 只看该作者
刚看到,赞一个
回复 支持 反对

使用道具 举报

15

主题

57

帖子

0

精华

高级会员

Rank: 4

积分
506
威望
271
贡献
147
兑换币
156
注册时间
2016-3-13
在线时间
44 小时
毕业学校
滨院
139#
发表于 2016-6-5 15:17:31 | 只看该作者
好深奥,
回复 支持 反对

使用道具 举报

5

主题

26

帖子

0

精华

注册会员

Rank: 2

积分
105
威望
77
贡献
16
兑换币
24
注册时间
2016-5-25
在线时间
6 小时
毕业学校
唐山师范学院
138#
发表于 2016-5-26 13:16:48 | 只看该作者
能不能提供一下c车的程序,摄像头的麻烦了,因为是新手,不懂得挺多的,能不能请教一下,邮箱是1170252681@qq.com
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

注册会员

Rank: 2

积分
159
威望
81
贡献
50
兑换币
52
注册时间
2015-9-10
在线时间
14 小时
毕业学校
西安邮电大学
137#
发表于 2016-4-15 22:06:57 | 只看该作者
用matlab矫正后,怎么转成c呢?然并卵啊~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-20 18:40 , Processed in 0.091610 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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