资源简介

随着视频播放 动态,实时进行畸变矫正,并实时将矫正后的画面播放出来

资源截图

代码片段和文件信息

% author: xiaobiky
% weixin  17717538076
% welcome to discuss and pai zhuan!



function correct_img=distortion_correction(image)
 
  A=[    492.1229         0         974.2238;
          0           490.0232          608.0280 ;
         0          0             1.0000     ];

D = [   -0.1760    0.0177   0     0   0  ];
zc=0.78;
fx=A(11);
cx=A(13);
fy=A(22);
cy=A(23);
k1=D(1);k2=D(2);k3=D(3);p1=D(4);p2=D(5);


I_d=rgb2gray(image);
I_d=im2double(I_d);

I_r=zeros(size(I_d));
[vu]=find(~isnan(I_r));
%XYZc=inv(A)*[uvones(length(u)1)]‘; %3*307200  camera zuobiaoxi
%XYZc=inv(A)*[u.*XYZc(3:)‘v.*XYZc(3:)‘ones(length(u)1).*XYZc(3:)‘]‘; %3*307200  camera zuobiaoxi
%x=[u.*XYZc(3:)‘v.*XYZc(3:)‘ones(length(u)1).*XYZc(3:)‘];

%  syms XYZc
%  [XYZc]=solve(XYZc==inv(A)*[u.*XYZc(3:)‘v.*XYZc(3:)‘ones(length(u)1).*XYZc(3:)‘]‘);


XYZc=inv(A)*[u*zcv*zcones(length(u)1)*zc]‘;
%=XYZc(3:);
x=XYZc(1:);
y=XYZc(2:);
r2=XYZc(1:).^2+XYZc(2:).^2;

x=x.*(1+k1*r2+k2*r2.^2)+2*p1.*y.*x+p2*(r2+2*x.^2);%distoration  camera zuobiao
y=y.*(1+k1*r2+k2*r2.^2)+p1*(r2+2*y.^2)+2*p2.*x.*y;

% u_d=reshape(fx.*x+cxsize(I_r));%return to pixel zuobiao
% v_d=reshape(fy.*y+cysize(I_r));

u_d=reshape(fx.*x/zc+cxsize(I_r));%return to pixel zuobiao
v_d=reshape(fy.*y/zc+cysize(I_r));



I_r=interp2(I_du_dv_d); %u_dv_d is distor zuobiaothen its zuobiao value assian to right zuobiao 
correct_img=I_r;
% subplot(121);
% %imagesc(I_d);
% imshow(I_d);
% title(‘distoration pic‘);
% subplot(122);
% %imagesc(I_r);
% imshow(I_r);
% title(‘fix pic‘);




 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1620  2018-08-30 14:35  dynamic_distortion_correct\distortion_correction.m
     文件         357  2018-08-30 14:34  dynamic_distortion_correct\dynamic_show.m
     目录           0  2018-08-30 14:31  dynamic_distortion_correct\

评论

共有 条评论