• 回答数

    0

  • 浏览数

    2131

  • 收藏数

    0

作者:南戈 发表于 2020-6-4 15:46:42
跳转到指定楼层

显微镜等光学仪器,景深很小,只能于焦平面或近似于焦平面成像。张正友证明了若标定板在一个平面移动、旋转只能求解内参中的α与β(我这里γ设为0,假设u0,v0已知,为255)。设内参a=【2,0,255;0,2,255;0,0,1】,外参为[r t]=【2^0.5/2,-2^0.5/2,0;2^0.5/2,2^0.5/2,0;0,0,1].单应性矩阵h=a【r t];

利用张正友的方法求解内参matlab代码如下,结果怎么也不对,哪位大佬可以解答下呀。或者有什么可以在小景深下标定的方法吗?(主动视觉的不算)
function a=intrinsics_analytical(h,u0,v0)
h11=h(1,1);
h12=h(1,2);
h13=h(1,3);
h21=h(2,1);
h22=h(2,2);
h23=h(2,3);
v11=[h11*h11,h11*h12+h12*h11,h12*h12,2*h13*h11,2*h12*h13,h13*h13];
v12=[h11*h21,h11*h22+h12*h21,h12*h22,h13*h21+h11*h23,h13*h22+h12*h23,h13*h23];
v22=[h21^2,2*h21*h22,h22^2,2*h23*h21,2*h23*h22,h23^2];

v=[v12;(v11-v22)];

x=[v(:,1)-v(:,4)*u0+v(:,6)*u0^2,v(:,3)-v0*v(:,5)+v(:,6)*v0^2];
c=-v(:,6);

d=x\c;
a=[(1/d(1))^0.5,0,u0;0,(1/d(2))^0.5,v0;0,0,1];

分享:
回复

使用道具

成为第一个回答人

高级模式 评论
您需要登录后才可以回帖 登录 | 立即注册 微信登录