• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

matlab几何纠正,间接法,双线性内插

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

超简洁,超级快,两个文件

datapre.m文件代码:

global X;

global Y;

global A;

global l;

global i;

global I;

global m;

global n;

global k;

global dx;

 

 

A=[];

l=[];

i=0;

m=[];

n=[];

dx=[];

 

fig=figure;

subplot(1,2,1);

I=imread('编程实习2-待纠正图像.bmp');

imshow(I);

J=imread('编程实习2-参考图像.bmp');

subplot(1,2,2);

imshow(J);

dcm_obj = datacursormode(fig);

datacursormode on;

set(dcm_obj,'UpdateFcn',@myupdatefcn);

 

 

myupdatefcn文件代码:

function txt = myupdatefcn(empt,event_obj)

% Customizes text of data tips

global X;

global Y;

global A;

global l;

global i;

global I;

global m;

global n;

global k;

global dx;

pos = get(event_obj,'Position');

X=pos(1);

Y=pos(2);

txt = {['待纠正图像X: ',num2str(X)],...

     ['待纠正图像Y: ',num2str(Y)]};

i=i+1;

if(rem(i,2)==1)

k=(i+1)/2;

A(k,1)=1;

A(k,2)=X;

A(k,3)=Y;

else

    l(i/2,1)=X;

    l(i/2,2)=Y;

end

[m,n]=size(l);

if(m==4)

    datacursormode off;

    dx=inv(A'*A)*(A'*l);    

    [m,n,k]=size(I); 

dis=sqrt((A(2,2)-A(1,2))*(A(2,2)-A(1,2))+(A(2,3)-A(1,3))*(A(2,3)-A(1,3)));

dist=sqrt((l(2,1)-l(1,1))*(l(2,1)-l(1,1))+(l(2,2)-l(1,2))*(l(2,2)-l(1,2)));

sca=dist/dis;

cosa=(dx(2,1)+dx(3,2))/(2*sca);

sina=(-dx(2,2)+dx(3,1))/(2*sca);

alfa=atan(sina/cosa);

alfa=alfa*180/3.1415926;

ResImage=imresize(I,sca,'bilinear');

ResImage=imrotate(ResImage,alfa,'bilinear');

 

figure;

imshow(ResImage);

end

end

    

 

 

    


 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi7MD5加密发布时间:2022-07-18
下一篇:
DrawGrid做图片显示代码简单参考性强(Delphi7)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap