matlab csapi代码,【matlab】樣條函數:csapi、spap2和augknt的使用

可以調用樣條工具箱(Spline ToolBox)

csapi

clear;clc

z0=double(rgb2gray(imread('1.jpg'))); %讀取數據

x0=1:size(z0,1);y0=1:size(z0,2);

sp=csapi({x0 y0},z0);%得到每片三次樣條曲面的系數

fnplt(sp); %可得到擬合曲面的效果圖

vals = fnval(sp,{x0 y0});%計算擬合后的數據

---------------------------------------------------------------------------------------------------------------

spap2

clc; clear; close all;

z=[0.2 0.24 0.25 0.26 0.25 0.25 0.25 0.26 0.26 0.29 0.25 0.29;

0.27 0.31 0.3 0.3 0.26 0.28 0.29 0.26 0.26 0.26 0.26 0.29;

0.41 0.41 0.37 0.37 0.38 0.35 0.34 0.35 0.35 0.34 0.35 0.35;

0.41 0.42 0.42 0.41 0.4 0.39 0.39 0.38 0.36 0.36 0.36 0.36;

0.3 0.36 0.4 0.43 0.45 0.45 0.51 0.42 0.4 0.37 0.37 0.37];

% z=double(rgb2gray(imread('1.jpg')));

x=1:size(z,2);%長為12

y=1:size(z,1);%寬為5

[x0, y0] = meshgrid(x, y);%產生采樣網格

surf(x,y,z);%畫出原始數據的三維圖

title('Original data Plot');

xlabel('X'), ylabel('Y'), zlabel('Z')

% colormap; colorbar;

% axis([0 15 0 6 0.15 0.55]);

% hold on;

% plot3(x0, y0, z, 'p');

figure;

ky = 3; knotsy = augknt([1,2.5,13],ky);%設置節點序列1 1 1 2.5 13 13 13

%augknt(knots,k)意義是產生一個逐增的節點序列,並且頭和尾節點重復為k個,

%如augknt([1 2 3 3 3 4 4 4 4],2)和augknt([1 2 3 3 3 4],2)得到結果一樣

%1 1 2 3 3 3 4 4

sp = spap2(knotsy,ky,y,z');%根據最小二乘准則的B樣條擬合

yy = 1:size(z,1); vals = fnval(sp,yy);%計算擬合的數據

fnplt(sp); %畫出擬合效果圖

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值