久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5932|回復: 2
打印 上一主題 下一主題
收起左側

張正友Matlab相機標定完整版原代碼,親測可用

[復制鏈接]
跳轉到指定樓層
樓主
張正友的Matlab相機標定的完整版原代碼,親測可行!!!


Matlab源程序如下:
  1. % function Zhang(M,m)
  2. %
  3. % ***********************************************************************************
  4. % *******          A Flexible New Technique for Camera Calibration            *******
  5. % ***********************************************************************************
  6. %
  7. % Note:    M:2*N  m:2*N
  8. % M        point on the model plane, when using M=[X,Y]' ---> M=[X,Y,1]'
  9. % m        M's image, when using                m=[u,v]' ---> m=[u,v,1]' , so that
  10. %          s*m = H*M , with H=A*[r1,r2,t];                  (2)
  11. % H        homography matrix
  12. %
  13. % REF:           "A Flexible New Technique for Camera Calibration"
  14. %           - Zhengyou Zhang
  15. %           - Microsoft Research
  16. %
  17. function Zhang(M,m)

  18. %  M=[X,Y]' ---> M=[X,Y,1]'  ;   m=[u,v]' ---> m=[u,v,1]'
  19.     [rows,npts]=size(M);
  20.     matrixone=ones(1,npts);
  21.     M=[M;matrixone];
  22.     num=size(m,3);
  23.     for i=1:num
  24.         m(3,:,i)=matrixone;
  25.     end
  26. % Estimate the H
  27.     for i=1:num
  28.         H(:,:,i)=homography2d1(M,m(:,:,i))';
  29.     end
  30. % solve the intrinsic parameters matrix A
  31. % A=[alpha_u skewness u0
  32. %    0       alpha_v  v0
  33. %    0       0        1]
  34. % see Appendix B "Extraction of the Intrisic Parameters from Matrix B", P18
  35.     V=[];
  36.     for flag=1:num
  37.         v12(:,:,flag)=[H(1,1,flag)*H(2,1,flag), H(1,1,flag)*H(2,2,flag)+H(1,2,flag)*H(2,1,flag), H(1,2,flag)*H(2,2,flag), H(1,3,flag)*H(2,1,flag)+H(1,1,flag)*H(2,3,flag), H(1,3,flag)*H(2,2,flag)+H(1,2,flag)*H(2,3,flag), H(1,3,flag)*H(2,3,flag)];
  38.         v11(:,:,flag)=[H(1,1,flag)*H(1,1,flag), H(1,1,flag)*H(1,2,flag)+H(1,2,flag)*H(1,1,flag), H(1,2,flag)*H(1,2,flag), H(1,3,flag)*H(1,1,flag)+H(1,1,flag)*H(1,3,flag), H(1,3,flag)*H(1,2,flag)+H(1,2,flag)*H(1,3,flag), H(1,3,flag)*H(1,3,flag)];
  39.         v22(:,:,flag)=[H(2,1,flag)*H(2,1,flag), H(2,1,flag)*H(2,2,flag)+H(2,2,flag)*H(2,1,flag), H(2,2,flag)*H(2,2,flag), H(2,3,flag)*H(2,1,flag)+H(2,1,flag)*H(2,3,flag), H(2,3,flag)*H(2,2,flag)+H(2,2,flag)*H(2,3,flag), H(2,3,flag)*H(2,3,flag)];
  40.         V=[V;v12(:,:,flag);v11(:,:,flag)-v22(:,:,flag)];
  41.     end
  42.     k=V'*V;      
  43.     [u,v,d]=svd(k);
  44.     [e,d2]=eig(k);
  45.     b=d(:,6);
  46.     v0=(b(2)*b(4)-b(1)*b(5))/(b(1)*b(3)-b(2)^2);
  47.     s=b(6)-(b(4)^2+v0*(b(2)*b(4)-b(1)*b(5)))/b(1);
  48.     alpha_u=sqrt(s/b(1));
  49.     alpha_v=sqrt(s*b(1)/(b(1)*b(3)-b(2)^2));
  50.     skewness=-b(2)*alpha_u*alpha_u*alpha_v/s;
  51.     u0=skewness*v0/alpha_u-b(4)*alpha_u*alpha_u/s;
  52.     A=[alpha_u skewness u0
  53.         0      alpha_v  v0
  54.         0      0        1];
  55. % solve k1 k1 and all the extrisic parameters, P6
  56.     D=[];
  57.     d=[];
  58.     Rm=[];
  59.     for flag=1:num
  60.         s=(1/norm(inv(A)*H(1,:,flag)')+1/norm(inv(A)*H(2,:,flag)'))/2;
  61.         rl1=s*inv(A)*H(1,:,flag)';
  62.         rl2=s*inv(A)*H(2,:,flag)';
  63.         rl3=cross(rl1,rl2);
  64.         RL=[rl1,rl2,rl3];
  65.         %%%%%%%%%%%%%%%%%%%%
  66.         % see Appendix C "Approximating a 3*3 matrix by a Rotation Matrix", P19
  67.         [U,S,V] = svd(RL);
  68.         RL=U*V';
  69.         %%%%%%%%%%%%%%%%%%%%
  70.         TL=s*inv(A)*H(3,:,flag)';
  71.         RT=[rl1,rl2,TL];
  72.         XY=RT*M;
  73.         UV=A*XY;
  74.         UV=[UV(1,:)./UV(3,:); UV(2,:)./UV(3,:); UV(3,:)./UV(3,:)];
  75.         XY=[XY(1,:)./XY(3,:); XY(2,:)./XY(3,:); XY(3,:)./XY(3,:)];
  76.         for j=1:npts
  77.             D=[D; ((UV(1,j)-u0)*( (XY(1,j))^2 + (XY(2,j))^2 )) , ((UV(1,j)-u0)*( (XY(1,j))^2 + (XY(2,j))^2 )^2) ; ((UV(2,j)-v0)*( (XY(1,j))^2 + (XY(2,j))^2 )) , ((UV(2,j)-v0)*( (XY(1,j))^2 + (XY(2,j))^2 )^2) ];
  78.             d=[d; (m(1,j,flag)-UV(1,j)) ; (m(2,j,flag)-UV(2,j))];
  79.         end
  80.         r13=RL(1,3);
  81.         r12=RL(1,2);
  82.         r23=RL(2,3);
  83.         Q1=-asin(r13);
  84.         Q2=asin(r12/cos(Q1));
  85.         Q3=asin(r23/cos(Q1));
  86.         [cos(Q2)*cos(Q1)   sin(Q2)*cos(Q1)   -sin(Q1) ; -sin(Q2)*cos(Q3)+cos(Q2)*sin(Q1)*sin(Q3)    cos(Q2)*cos(Q3)+sin(Q2)*sin(Q1)*sin(Q3)  cos(Q1)*sin(Q3) ; sin(Q2)*sin(Q3)+cos(Q2)*sin(Q1)*cos(Q3)    -cos(Q2)*sin(Q3)+sin(Q2)*sin(Q1)*cos(Q3)  cos(Q1)*cos(Q3)];
  87.         R_new=[Q1,Q2,Q3,TL'];
  88.         Rm=[Rm , R_new];
  89.     end
  90. % using function (13), P8
  91.     k=inv(D'*D)*D'*d;
  92. % Complete Maximun Likelihood Estimation, using function (14), P8
  93.     para=[Rm,k(1),k(2),alpha_u,skewness,u0,alpha_v,v0];
  94.     options = optimset('LargeScale','off','LevenbergMarquardt','on');
  95.     [x,resnorm,residual,exitflag,output]  = lsqnonlin( @simon_HHH, para, [],[],options, m, M);
  96. % display the result
  97.     k1=x(num*6+1)
  98.     k2=x(num*6+2)
  99.     A=[x(num*6+3) x(num*6+4) x(num*6+5); 0 x(num*6+6) x(num*6+7); 0,0,1]
復制代碼

所有資料51hei提供下載:
zhang's+calibration.zip (7.25 MB, 下載次數: 30)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:473532 發表于 2019-4-25 14:19 | 只看該作者
請問我運行為啥報錯。。。

出錯 homography2d1 (line 78)
    options = optimset('LargeScale','off','LevenbergMarquardt','on');

出錯 Zhang (line 31)
        H(:,:,i)=homography2d1(M,m(:,:,i))';

出錯 test (line 28)
Zhang(M,m)
回復

使用道具 舉報

板凳
ID:1011605 發表于 2022-3-19 20:12 | 只看該作者
Wangqq 發表于 2019-4-25 14:19
請問我運行為啥報錯。。。

出錯 homography2d1 (line 78)

我也是這個問題,請問解決了嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级毛片视频在线观看 | 国产精品揄拍一区二区久久国内亚洲精 | 亚洲 欧美 另类 综合 偷拍 | 国产偷录视频叫床高潮对白 | 91免费福利视频 | 亚洲毛片一区二区 | 天天干视频 | 99久久精品视频免费 | 99免费精品视频 | 在线播放亚洲 | 亚洲品质自拍视频 | 日韩视频一级 | 久久久xx | 中文字幕一区二区三区四区 | 日韩精品视频一区二区三区 | 综合精品 | 久久久久久99 | 精品在线一区 | 一区二区三区免费 | 国产色| 国产精品久久久久久久久久久久 | 国产黄色网址在线观看 | 亚洲精品电影网在线观看 | 日本aaa视频 | 日韩一区二区三区在线视频 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 精品国产一二三区 | 一区二区三区小视频 | 无人区国产成人久久三区 | 日韩欧美中文 | 999久久久| 久久久入口 | 亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区 | 在线欧美亚洲 | 国产一区在线免费 | 国产精品久久久久久影院8一贰佰 | 在线观看日韩精品视频 | 密桃av | av色在线 | 在线看av网址 | 国产精品a久久久久 |