智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1619|回复: 3
打印 上一主题 下一主题

求救:摄像头标定方法

[复制链接]

1

主题

7

帖子

0

精华

注册会员

Rank: 2

积分
191
威望
89
贡献
74
兑换币
45
注册时间
2016-7-20
在线时间
14 小时
毕业学校
陇东学院
跳转到指定楼层
1#
发表于 2018-3-15 22:06:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求各位给个方向,摄像头标定一直不合适,故小弟利用朱葛俊大哥的数据,用MATLAB跑了一会儿数据,想找个合适的,发现还是不行。求各位支个招(小弟不才,只跑其中一部分数据,大概是188187组)
下面是原图

下面是跑的数据的图片



其中几张












万分感谢,这个是MATLAB程序

  1. disp('start');

  2. clear,clc;
  3. [X,map]=imread('E:\1smart Car\BimabeProgess\img4.bmp'); %读取图像文件
  4. %img_origin = rgb2gray(I); %将真彩色图像转换为灰度图像二维矩阵  ?C:\Users\duxingzhe2016\Desktop\2.bmp
  5. % BW=im2bw(X,map,0.1);
  6. X2=im2uint8(X,'indexed');
  7. img_origin=ind2gray(X2,map);
  8. %imshow(X,map);
  9. img_size = size(img_origin); % 返回矩阵的行数或列数 其中r=size(A,1)该语句返回矩阵A的行数row为垂直方向
  10. subplot(1,2,1);imshow(img_origin);title('原图,60*80');

  11. m1 =[0.208748 0.201252 0.197369 0.204188 0.208997 0.197502 0.208333 0.211618 0.210896 0.219466 0.208334 0.205882 0.197133 0.199867 0.203863 0.196078 0.211268 0.21544 0.214521]
  12. m2 =[ -0.28492 -0.330947 -0.346889 -0.319372 -0.322453 -0.28698 -0.347223 -0.342706 -0.368956 -0.353542 -0.359477 -0.388292 -0.339773 -0.321889 -0.372046 -0.352113 -0.314186 -0.313531]
  13. m3 =[ 4.49617 7.18246 7.02152 5.69634 7.00238 6.60703 6.66668 6.15114 6.85113 7.229797 8.11765 8.04659 7.80144 6.65236 7.45099 5.98592 4.9641 6.10561]
  14. m4 = [1.49012e-08 -1.49012e-08 8.9407e-08 -2.98023e-8 0 5.96046e-08 2.98023e-08 -1.49012e-08 0 4.47035e-08 9.9407e-08 2.98023e-08 -2.98023e-08 5.96046e-08 -4.47035e-08 -1.49012e-08 -1.04308e-07 1.49012e-8]
  15. m5 = [0.548993 0.299642 0.460528 0.418847 0.286626 0.259964 0.3373 0.303164 0.470739 0.34091 0.48366 0.382318 0.499667 0.515022 0.351936 0.598591 0.399462 0.41254]
  16. m6 = [-8.01251 3.98927 -2.43424 2.30367 8.32802 9.61512 4.28573 8.20738 0.839639 9.5202 -1.29413 0.860222 -3.43105 -7.38198 3.52942 -9.96478 8.4246 -6.23711 2.37625]
  17. m7 = [-5.82077e-10 4.07454e-10 4.42378e-09 -1.5134e-9 5.82077e-11 7.85803e-10 -1.86265e-09 -1.01863e-09 2.32831e-09 2.46291e-09 5.82077e-10 5.82077e-10 -5.82077e-10 2.32831e-10 -2.79397e-09 1.16415e-09 -5.19503e-09 1.28057e-9]
  18. m8 = [-0.0118138 -0.0129696 -0.0131579 -0.013089 -0.0131369 -0.0124914 -0.0138889 -0.0144991 -0.0139949 -0.0138889 -0.0143791 -0.0155317 -0.0139907 -0.0128755 -0.0145802 -0.0140845 -0.0125673 -0.0132013]
  19. u=80; % 水平方向colum
  20. v=0; % 行row为垂直方向

  21. %subplot(4,4,1);imshow(img_origin);title('原图,60*80');
  22. %%以下是数据批量处理-----------------------------------------------------------------------------
  23. g=0;
  24. disp('start')
  25. for d1=1:length(m1)
  26.     for d2=1:length(m2)
  27.         for d3=1:length(m3)
  28.             for d4=1:length(m4)
  29.                 for d5=1:length(m5)
  30.                     for d6=1:length(m6)
  31.                         for d7=1:length(m7)
  32.                             for d8=1:length(m8)
  33.                                 x=(m1(d1)*u+m2(d2)*v+m3(d3))/(m7(d7)*u+m8(d8)*v+1);% 水平方向column
  34.                                 y=(m4(d4)*u+m5(d5)*v+m6(d6))/(m7(d7)*u+m8(d8)*v+1); % 行row为垂直方向
  35.                                 
  36.                                 x=uint16(x);
  37.                                 
  38.                                 y=uint16(y); %本段为生成新矩阵容纳校正后的图像
  39.                                 
  40.                                 img_undist = zeros(y ,x ); % zeros(m,n)产生m×n的全0矩阵 所有元素初始化为0
  41.                                 
  42.                                 new_size = size(img_undist); % 返回m×n全0矩阵的行数或列数
  43.                                 
  44.                                 img_undist = uint8( img_undist );
  45.                                 
  46.                                 for i = 1:(img_size(1))  % 行row为垂直方向
  47.                                     
  48.                                     for j = 1:(img_size(2)) % 水平方向column
  49.                                        
  50.                                         u=j; % 水平方向column
  51.                                        
  52.                                         v=i; % 垂直方向
  53.                                        
  54.                                         x=(m1(d1)*u+m2(d1)*v+m3(d1))/(m7(d1)*u+m8(d1)*v+1); % 水平方向column
  55.                                        
  56.                                         y=(m4(d1)*u+m5(d1)*v+m6(d1))/(m7(d1)*u+m8(d1)*v+1);% 行row为垂直方向
  57.                                        
  58.                                         x=int16(x)+new_size(2)/2; %物理坐标用负,现修正显示
  59.                                        
  60.                                         y=int16(y);
  61.                                        
  62.                                         if(y>0 &&x>0 )
  63.                                             
  64.                                             img_undist(y,x)= img_origin(i,j); %对应坐标
  65.                                             
  66.                                         end
  67.                                        
  68.                                     end
  69.                                     
  70.                                 end
  71.                                 imgName = d1;
  72.                                 int16 imddir=0;
  73.                                 imddir=d1+1;
  74.                                 img_undist=flipud(img_undist); %矩阵以水平轴翻转
  75.                                 
  76.                                 
  77.                                 adressString = ['E:\1smart Car\BimabeProgess\test\' sprintf('%0.4d',g) '.bmp']; %这里num是该图像所在的
  78.                                 imwrite(img_undist, adressString); %adressString表示输出地址
  79.                                 g=g+1;
  80.                                 
  81.                                 
  82.                                 
  83.                                 disp(g);
  84.                             end
  85.                         end
  86.                     end
  87.                 end
  88.             end
  89.         end
  90.     end
  91. end

  92. %length()
复制代码


本帖子中包含更多资源

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

x
回复

使用道具 举报

1

主题

7

帖子

0

精华

注册会员

Rank: 2

积分
191
威望
89
贡献
74
兑换币
45
注册时间
2016-7-20
在线时间
14 小时
毕业学校
陇东学院
2#
 楼主| 发表于 2018-3-15 22:07:43 | 只看该作者
回复 支持 反对

使用道具 举报

162

主题

2048

帖子

5

精华

超级版主

岳麓山没有车神

Rank: 10Rank: 10Rank: 10

积分
14920

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

QQ
威望
6285
贡献
5963
兑换币
2581
注册时间
2013-11-14
在线时间
1336 小时
3#
发表于 2018-4-12 22:19:53 | 只看该作者
大佬你谁?
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

高级会员

Rank: 4

积分
966
威望
476
贡献
292
兑换币
313
注册时间
2017-10-21
在线时间
99 小时
4#
发表于 2018-4-14 00:22:55 | 只看该作者
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-24 13:45 , Processed in 0.049137 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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