⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 estidlt.m

📁 一个很好用的摄像机标定程序
💻 M
字号:
function [DLT, errstat] = estiDLT( data )p = data(:, 1 : 3);q = data(:, 4 : 5);[n m] = size(p);NDX=768; NDY=576; Sx=6.2031; Sy=4.6515; f0=16;%NDX=sys(1); NDY=sys(2); Sx=sys(3); Sy=sys(4); f0=sys(5);wx=data(:,1); wy=data(:,2); wz=data(:,3);num=size(data,1);u = Sx*data(:,4)/NDX;v = Sy*data(:,5)/NDY;Lu=[wx wy wz 0*u+1 0*u 0*u 0*u 0*u -wx.*u -wy.*u -wz.*u];Lv=[0*v 0*v 0*v 0*v wx wy wz 0*v+1 -wx.*v -wy.*v -wz.*v];L=reshape([Lu';Lv'],11,2*num)';l=reshape([u';v'],2*num,1);a=pinv(L)*l;a(12)=1;DLT=reshape(a,4,3)'; newq = applyDLT(DLT, p);%newq = newq ./ 123.809% errors = newp - p;errors = newq - (q./123.809);xyzmeans = sum(abs(errors)) ./ n;xyzoffsets = sum(errors) ./ n;err = vsize(errors);errstat = [mean(err), max(err), std(err)];% display results    disp(sprintf('%d points, estimated DLT:', n));    disp(DLT);    disp('Mean and shift for each axis:');    disp(sprintf('  X: %f, %f', xyzmeans(1), xyzoffsets(1)));    disp(sprintf('  Y: %f, %f', xyzmeans(2), xyzoffsets(2)));    %disp(sprintf('  Z: %f, %f', xyzmeans(3), xyzoffsets(3)));    disp(sprintf('Errors in the object space: mean = %f, max = %f, std = %f', ...         errstat(1), errstat(2), errstat(3)));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -