基于MALAB的B样条曲线逼近算法(抗噪声、误差可控、支持开/闭合)

背景

给定一些列有序的2D/3D数据点,我们想要用一条 p p p次B样条拟合它们。使用逼近技术而不是插值,因为数据点偏多,利用误差界,可以很好的控制样条曲线的控制点数量。

在这里插入图片描述
在这里插入图片描述

开发

基于matlab平台,开发了p次B样条曲线的逼近算法。本算法基于误差/容差范围,适用于2D、3D有序数据点,并且适用于开曲线和闭曲线**。

在这里插入图片描述

功能演示+样例代码


function [P, U, E] = b_spline_approx(Q, p, alpha, TOL, keep_ends, is_closed)
  % INPUT
  % Q - data points, Q = [Q(0), ..., Q(m)]
  % p - the degree of spline
  % alpha - parametrization strategy
  % TOL - tolerance
  % keep_ends - whether or not keep end-points, i.e., C(t_0) = Q(0), C(t_m) = Q(m)
  % is_closed, whether or not generate a closed B-spline curve
  %
  % OUTPUT
  % P - control points
  % U - knot vector
  % E - error vector

  if ~check_data_points(Q)
      error('Bad data points!')
  end

  [P, U, E] = b_spline_approx_impl(Q, p, alpha, TOL, keep_ends, is_closed);
end

在这里插入图片描述

在这里插入图片描述

演示视频

基于MALAB的B样条曲线逼近算法(抗噪声、支持开/闭合、误差控制)

关键词

B样条曲线、逼近、噪声、容差、闭合曲线

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值