gusucode.com > 基于matlab软件,实现双目视觉原理的摄像机标定,能根据各视场图像求内、外部参数 > 基于matlab软件,实现双目视觉原理的摄像机标定,能根据各视场图像求内、外部参数/TOOLBOX_calib/small_test_script.m
% This is small script that demonstrate the computation of extrinsic % parameters using 3D structures. % This test was build from data provided by Daniel Small (thank you Daniel!) %-- Image points (in pixels): x = [479.5200 236.0800 608.4100 415.3700 461.0000 40.0000 451.4800 308.7000 373.9900 314.8900 299.3200 319.1300 231.5500 321.3700 443.7300 282.9200 378.3600 288.3000 314.6900 292.7400 255.4700 296.2300]'; % 3D world coordinates: X = [ 0 0 0 54.0000 0 0 0 0 40.5000 27.0000 -8.4685 -2.3750 27.0000 -18.4685 -2.3750 27.0000 -28.4685 -2.3750 27.0000 -38.4685 -2.3750 17.0000 -8.4685 -2.3750 17.0000 -18.4685 -2.3750 17.0000 -28.4685 -2.3750 17.0000 -38.4685 -2.3750]'; %------------ Intrinsic parameters: %--- focal: fc = [ 395.0669 357.1178 ]'; %--- Principal point: cc = [ 380.5387 230.5278 ]'; %--- Distortion coefficients: kc = [-0.2601 0.0702 -0.0019 -0.0003 0]'; %--- Skew coefficient: alpha_c = 0; %----- Computation of the pose of the object in space %----- (or the rigid motion between world reference frame and camera ref. frame) [om,T,R] = compute_extrinsic(x,X,fc,cc,kc,alpha_c); %--- Try to reproject the structure to see if the computed pose makes sense: x2 = project_points2(X_1,omckk,Tckk,fc,cc,kc,alpha_c); % Graphical output: figure(2); plot(x(1,:),x(2,:),'r+'); hold on; plot(x2(1,:),x2(2,:),'go'); hold off; axis('equal'); axis('image'); title('red crosses: data, green circles: reprojected structure -- IT WORKS!!!'); xlabel('x'); ylabel('y');