分享好友 编程语言首页 频道列表

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

matlab  2023-02-09 10:240

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

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

    

 

 

    


 

查看更多关于【matlab】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
如何在Abaqus的python中调用Matlab程序
目录1. 确定版本信息2. 备份python3. 设置环境变量4. 安装程序5. 调试运行参考资料Abaqus2018操作系统Win10 64位Python版本2.7(路径C:\SIMULIA\CAE\2018\win_b64\tools\SMApy\python2.7)2. 备份python将上述的“python2.7”文件夹复制出来,避免因操作错误

0评论2023-03-16608

ROS与Matlab系列:一个简单的运动控制 基于matlab的运动控制系统
转自:http://blog.exbot.net/archives/2594Matlab拥有强大的数据处理、可视化绘图能力以及众多成熟的算法函数,非常适合算法开发;在控制系统设计中,Simulink也是普遍使用的设计和仿真工具。而ROS系统,则是一种新的标准化机器人系统软件框架。通过ROS,你

0评论2023-02-10920

matlab 遍历结构体struc的成员
MATLAB中专门用于对结构数组的操作的函数并不多,通过 help datatypes获取数据类型列表,可以看到其中的结构数据类型的有关的函数,主要如表4.3.1所示。表4.3.1 结构数组的操作函数函数名             功能描述 deal                 把输入处

0评论2023-02-09712

matlab编程如何换行 matlab怎么换行
空格+三个点+逗号

0评论2023-02-09691

C/C++中调用matlab引擎计算 matlab转c
原帖地址:http://blog.sina.com.cn/s/blog_6adcb3530101cvot.html一,在linux环境使用matlab引擎必须先进行一些必要的配置1,matlab引擎依赖/bin/csh启动,所以不管你使用何种shell,都必须安装csh。**2,matlab引擎依赖的动态库文件目录必须在系统当前的

0评论2023-02-09451

Matlab 根号的输入
二次根号:sqrt(a)或a^0.5三次根号:x^(1/3)或者x.^(1/3)根据x的数据结构类型矩阵、数组需要.^

0评论2023-02-09969

命令视频Matlab下查看摄像头设备信息
时间紧张,先记一笔,后续优化与完善。    应用如下2个命令:         info = imaqhwinfo('winvideo')    每日一道理 俄国作家契诃夫说:“有大狗,有小狗,小狗不该因为大狗的存在而心慌意乱。所有的狗都应该叫,就让他各自用上帝给他的声音

0评论2023-02-09957

How to use the HMM toolbox (Matlab)
一、离散输出的隐马尔科夫模型(DHMM,HMM with discrete outputs)最大似然参数估计EM(Baum Welch算法)The script dhmm_em_demo.m gives an example of how to learn an HMM with discrete outputs. Let there be Q=2 states and O=3 output symbols. We c

0评论2023-02-09459

permutation 随机置换检验的Matlab程序
假定a为某指标在10个样本中的值,5个一组,看以两组均值的差为例(统计量),随机置换检验程序 example: a: 230 -1350 -1580 -400 -760 970 110 -50 -190 -200v1=sum(a(1:5))/5;v2=sum(a(6:10))/5;T=abs(v1-v2);x=perms(a);      %矩阵a的全排列(随机全

0评论2023-02-09662

MATLAB学习1 之画图函数
ezplot适用条件“ezplot”命令可以用于显函数、隐函数和参数方程作图。不同函数的使用格式显函数y=f(x),ezplot函数的调用格式为ezplot(f, [xmin xmax]);              例:ezplot(\'sin(10*pi*x)/x\',[1 2]);%画出函数曲线隐函数f(x,y)=0,ezplot函数的

0评论2023-02-09591

Matlab 之 数据元素访问
Matlab的含义是矩阵实验室,其特征之一就是数据的向量化操作,借此提升软件运行效率。那么,必然会涉及数据元素的访问。Matlab主要支持下面一些形式的访问:(1)array-inde: A(i)(2)cell-index: C{i}(3)struct field: S.fieldname不同的访问方式,效

0评论2023-02-09994

matlab遍历文件夹下所有图片和遍历所有子文件夹下图片
做图像处理实验,经常需要遍历当前文件下所有图片。matlab当然很早就考虑了这个问题,库函数dir就是完成这个工作的。函数返回的是一个存放所有目录下文件信息的结构体,通过遍历结构体就可以达到访问所有文件的目的了。具体实现见下面程序:imgPath = 'E:/ima

0评论2023-02-09630

更多推荐