Matlab怎么利用垂距法实现提取离散坐标数据特征点
发表于:2025-02-21 作者:千家信息网编辑
千家信息网最后更新 2025年02月21日,这篇文章主要介绍了Matlab怎么利用垂距法实现提取离散坐标数据特征点的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Matlab怎么利用垂距法实现提取离散坐标数据特征点文
千家信息网最后更新 2025年02月21日Matlab怎么利用垂距法实现提取离散坐标数据特征点
这篇文章主要介绍了Matlab怎么利用垂距法实现提取离散坐标数据特征点的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Matlab怎么利用垂距法实现提取离散坐标数据特征点文章都会有所收获,下面我们一起来看看吧。
垂距法是指根据中间顶点到其前、后两相邻顶点连线的距离的大小,来确定是否保留该顶点的一种 线要素顶点压缩 算法。当求得的距离大于给定的限差(阈值)时,保留该顶点,否则删除该顶点(如下图所示)。
一般使用所有点到直线距离的 中位数 作为阈值。同时,本人所编写的工具函数不仅可以处理二维数据点,三维甚至更高维度的数据点依旧可以处理。
1.工具函数
怕大家找不到工具函数,这里放在最前面啦:
function [newPntSet,vertPnt]=getFeaturePnt(pntSet)% @author:slandarer% newPntSet : 特征点% vertPnt : 原始曲线垂足[rows,cols]=size(pntSet);if rows<4||cols<2,error('数据点过少或维度异常');endinnerPntSet=pntSet(2:end-1,:); % 内部点adjPnt1V=innerPntSet-pntSet(1:end-2,:); % 当前点与前一点向量adjPnt2V=pntSet(3:end,:)-pntSet(1:end-2,:);% 当前点的两个相邻点向量adjPnt2V=adjPnt2V./vecnorm(adjPnt2V')'; % 归一化lVert=sum(adjPnt1V.*adjPnt2V,2); vertPnt=adjPnt2V.*lVert+pntSet(1:end-2,:); % 获取垂足vertL=vecnorm((innerPntSet-vertPnt)'); % 计算垂线距离vertL(isinf(vertL)|isnan(vertL))=0; % 修正/0的情况innerPntSet(vertL2.基础使用(二维)
这里随机生成一组二维数据(两列),取出特征点后并绘图:
% 随机构造数据X=linspace(0,25,10)';Y=randi([0,10],[10,1]);pntSet=[X,Y];% 获取特征点[nPntSet,vertPnt]=getFeaturePnt(pntSet);% 坐标区域修饰hold onax=gca;ax.DataAspectRatio=[1,1,1];% 绘制原始数据曲线plot(pntSet(:,1),pntSet(:,2),'Color',[0 0.4470 0.7410],'LineWidth',2,'Marker','*');% 绘制新数据曲线plot(nPntSet(:,1),nPntSet(:,2),'Color',[0.6350 0.0780 0.1840 .7],'LineWidth',2,'Marker','s');legend('original-curve','feature-curve')3.使用并修饰绘图(二维)
就把辅助线也画上并各种加属性呗,需要注意的是,垂足并不一定在相邻两点的连线上,有时候是在其延长线上,但因为怕麻烦这里延长线就没有画:
% 随机构造数据X=linspace(0,25,10)';Y=randi([0,10],[10,1]);pntSet=[X,Y];% 获取特征点[nPntSet,vertPnt]=getFeaturePnt(pntSet);% 坐标区域修饰hold onax=gca;ax.YLim=[0,10];ax.DataAspectRatio=[1,1,1];ax.Color=[1,1,1];ax.XColor=[1,1,1].*.3;ax.YColor=[1,1,1].*.3;ax.LineWidth=1.5;ax.FontName='cambria';% 绘制原始数据曲线l1=plot(pntSet(:,1),pntSet(:,2),'Color',[0 0.4470 0.7410],'LineWidth',2,'Marker','*');% 绘制辅助线及垂线innerPntSet=pntSet(2:end-1,:);l2=plot([innerPntSet(:,1),vertPnt(:,1)]',[innerPntSet(:,2),vertPnt(:,2)]','Color',[.3,.3,.3],'LineWidth',1.2,'LineStyle','-.');plot([pntSet(3:end,1),pntSet(1:end-2,1)]',[pntSet(3:end,2),pntSet(1:end-2,2)]','Color',[.3,.3,.3],'LineWidth',1.2,'LineStyle','-.')% 绘制新数据曲线l3=plot(nPntSet(:,1),nPntSet(:,2),'Color',[0.6350 0.0780 0.1840 .7],'LineWidth',2,'Marker','s');% 增添图例legend([l1,l2(1),l3],{'original-curve','auxiliary-line','feature-curve'});4.三维数据
也是几乎完全相同的使用方式,不过绘图用的plot3:
% 随机构造数据X=linspace(0,25,10)';Y=randi([0,10],[10,1]);Z=randi([0,10],[10,1]);pntSet=[X,Y,Z];% 获取特征点[nPntSet,vertPnt]=getFeaturePnt(pntSet);% 坐标区域修饰hold ongrid onax=gca;ax.YLim=[0,10];ax.ZLim=[0,10];ax.DataAspectRatio=[1,1,1];ax.Color=[1,1,1];ax.XColor=[1,1,1].*.3;ax.YColor=[1,1,1].*.3;ax.ZColor=[1,1,1].*.3;ax.LineWidth=1.5;ax.FontName='cambria';% 绘制原始数据曲线l1=plot3(pntSet(:,1),pntSet(:,2),pntSet(:,3),'Color',[0 0.4470 0.7410],'LineWidth',2,'Marker','*');% 绘制辅助线innerPntSet=pntSet(2:end-1,:);l2=plot3([innerPntSet(:,1),vertPnt(:,1)]',[innerPntSet(:,2),vertPnt(:,2)]',... [innerPntSet(:,3),vertPnt(:,3)]','Color',[.3,.3,.3],'LineWidth',1.2,'LineStyle','-.');plot3([pntSet(3:end,1),pntSet(1:end-2,1)]',[pntSet(3:end,2),pntSet(1:end-2,2)]',... [pntSet(3:end,3),pntSet(1:end-2,3)]','Color',[.3,.3,.3],'LineWidth',1.2,'LineStyle','-.')% 绘制新数据曲线l3=plot3(nPntSet(:,1),nPntSet(:,2),nPntSet(:,3),'Color',[0.6350 0.0780 0.1840 .7],'LineWidth',2,'Marker','s');% 增添图例legend([l1,l2(1),l3],{'original-curve','auxiliary-line','feature-curve'});view(3)关于"Matlab怎么利用垂距法实现提取离散坐标数据特征点"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Matlab怎么利用垂距法实现提取离散坐标数据特征点"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
数据
特征
坐标
曲线
顶点
离散
原始
二维
函数
区域
工具
知识
绘图
辅助
内容
前点
向量
图例
垂线
延长线
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
oracle 数据库激活
网络安全视频新闻
加强网络安全普及教育
软件开发z亿玛酷1专注
360中国最大的网络安全公司
计算机网络技术 教材课本
vs里怎么连接数据库
网络技术与应用书籍
核心服务器怎么登陆
公安部网络安全网络安全检查
使用什么创建一张数据库基本表
网络安全与执法是理工类吗
怎样用数据库建立文件
数据库步长相关知识
捷益定制软件开发
北京定制软件开发公司
惠山区智能软件开发图片
网络安全年度
服务器数据的备份方式
流码服务器作用是什么
移动终端网络安全公司
informix数据库讲解
搭建yum服务器的步骤
香港代理服务器免费
csp网络安全认证
起航软件开发
网络安全发展前沿热议
北京体感多媒体软件开发
鸣梁网络技术
提高网络安全视频教程