使用Matlabcftool工具箱对图像进行拟合
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用Matlab cftool工具箱对图像进行拟合
Matlab提供了强大的工具箱系统,利用工具箱进行各种操作简单快捷。
此处介绍使用cftool(Curve Fitting Tool)进行图像拟合操作。网上有很多关于图像拟合的代码,但是如果照着运行不是上传代码的通知有所保留,就是环境不同无法运行,即使千方百计做出来,也难以举一反三,攻克其他的难题。使用cftool工具箱的流程如下:假定对X-Y坐标下的一组散点进行拟合,如
A=[4 5 9 15 17 29 40 50 79];
B=[14 19 39 40 70 100 140 290 400];
在Command界面输入如下两组数组,A代表X坐标的数值,B代表Y坐标下的数值。
输入cftool回车。如图:
可以打开cftool主界面
单击Data选项框,设定X Data为A,Y Data为B,如图:
可见Preview栏中自动绘制出了散点图。并且选择Create data set选项框,此时散点图会被复制到
cftool主界面中。单击Fitting选项框,弹出Fitting界面,在Fitting Editor选项框中选择New Fit。如图产生如下效果:
此处只需按照需求更改Type of fit以及下面备选框中的曲线名称。Type of fit中有如下选项:Polynomial(线性拟合),Exponential(指数函数拟合),Fourier(傅里叶函数拟合)等等。此处先选择Polynomial一次线性拟合。在备选框中选择linear Polynomial。单击Apply。返回cftool主界面,会产生如下效果:拟合成的曲线被绘制为红色,大功告成。
在Fitting界面中的Results框图中,可看到如下结果:
Linear model Poly1:
f(x) = p1*x + p2
Coefficients (with 95% confidence bounds):
p1 = 5.267 (4.236, 6.298)
p2 = -21.57 (-58.93, 15.79)
Goodness of fit:
SSE: 6633
R-square: 0.9542
Adjusted R-square: 0.9477
RMSE: 30.78
给定了函数的参数,即拟合函数为f(x) = 5.267*x -21.57。
Goodness of fit意思为拟合度。R-square意思为函数相关系数的平方,Adjusted R-square意思为系统调整后的相关系数。RMSE为均方根误差。此处R-square值越接近1,表示取下拟合程度越高,反之拟合状况越差。想得到较高的拟合度可以改变Type of fit 以及备选框中的曲线名称,一一进行拟合,选取拟合程度最高的曲线。
如选择Exponential下的a*exp(b*x)曲线类型,操作如上得到如下图像和拟合值:
General model Exp1:
f(x) = a*exp(b*x)
Coefficients (with 95% confidence bounds):
a = 46.07 (15.24, 76.9)
b = 0.02815 (0.01843, 0.03788)
Goodness of fit:
SSE: 1.496e+004
R-square: 0.8967
Adjusted R-square: 0.882
RMSE: 46.24
(注:素材和资料部分来自网络,供参考。请预览后才下载,期待你的好评与关注!)