Douglas一Peukcer算法由D.Douglas和T.Peueker于1973年提出,简称D一P算法,是目前公认的线状要素化简经典算法。现有的线化简算法中,有相当一部分都是在该算法基础上进行改进产生的。它的优点是具有平移和旋转不变性,给定曲线与阂值后,抽样结果一定。本章线化简重点讲解该算法。

算法的基本思路是:对每一条曲线的首末点虚连一条直线,求所有点与直线的距离,并找出最大距离值dmax ,用dmax与限差D相比:若dmax < D ,这条曲线上的中间点全部舍去;若dmax ≥D ,保留dmax 对应的坐标点,并以该点为界,把曲线分为两部分,对这两部分重复使用该方法。

算法的详细步骤如下:

(1) 在曲线首尾两点间虚连一条直线,求出其余各点到该直线的距离,如图3(1)。

(2) 选其最大者与阈值相比较,若大于阈值,则离该直线距离最大的点保留,否则将直线两端点间各点全部舍去,如图3(2),第4点保留。

(3) 依据所保留的点,将已知曲线分成两部分处理,重复第1、2步操作,迭代操作,即仍选距离最大者与阈值比较,依次取舍,直到无点可舍去,最后得到满足给定精度限差的曲线点坐标,如图3(3)、(4)依次保留第6点、第7点,舍去其他点,即完成线的化简。

道格拉斯—普克(Douglas一Peukcer)算法相关推荐

  1. 道格拉斯-普克算法(Douglas–Peucker algorithm)

    道格拉斯-普克算法(Douglas–Peucker algorithm,亦称为拉默-道格拉斯-普克算法.迭代适应点算法.分裂与合并算法)是将曲线近似表示为一系列点,并减少点的数量的一种算法.该算法的原 ...

  2. 【Java代码】道格拉斯-普克 Douglas-Peucker 抽稀算法(算法流程图解+使用JDK8方法实现+详细注解源码)

    1.算法说明   道格拉斯-普克算法 Douglas-Peucker Algorithm 简称 D-P 算法,亦称为拉默-道格拉斯-普克算法.迭代适应点算法.分裂与合并算法,是将曲线近似表示为一系列点 ...

  3. 170316.道格拉斯-普克算法

    道格拉斯-普克算法 道格拉斯-普克算法 (Douglas–Peucker algorithm,亦称为拉默-道格拉斯-普克算法.迭代适应点算法.分裂与合并算法)是乌尔斯·拉默(Urs Ramer)于19 ...

  4. c++多边形扫描线填充算法_基于MATLAB的道格拉斯普克算法递归实现

    道格拉斯普克算法 (道格拉斯-普克)Douglas-Peukcer算法由D.Douglas和T.Peueker于1973年提出,是线状要素抽稀的经典算法.用它处理大量冗余的几何数据点,既可以达到数据量 ...

  5. GPS定位轨迹抽稀之道格拉斯-普克(Douglas-Peuker)算法详解

    目录 1. 抽稀 2. 原理 3. 具体思路 4. 代码示例 道格拉斯-普克算法是我们常用的一种轨迹点的抽稀算法,抽稀出来的点可以尽可能的维持原先轨迹点的大体轮廓,剔除一些非必要的点 2. 原理 假设 ...

  6. opencv 凸包convexHull、道格拉斯-普克算法Douglas-Peucker algorithm、approxPloyDP 函数

    凸包convexHull.道格拉斯-普克算法Douglas-Peucker algorithm.approxPloyDP 函数 道格拉斯-普克算法(Douglas–Peucker algorithm) ...

  7. OpenCV 学习笔记03 凸包convexHull、道格拉斯-普克算法Douglas-Peucker algorithm、approxPloyDP 函数...

    凸形状内部的任意两点的连线都应该在形状里面. 1 道格拉斯-普克算法 Douglas-Peucker algorithm 这个算法在其他文章中讲述的非常详细,此处就详细撰述. 下图是引用维基百科的.ε ...

  8. matlab Douglas-Peucker 道格拉斯-普克算法

    c道格拉斯-普克算法 [1]  (Douglas–Peucker algorithm,亦称为拉默-道格拉斯-普克算法.迭代适应点算法.分裂与合并算法)是将曲线近似表示为一系列点,并减少点的数量的一种算 ...

  9. 道格拉斯-普克算法(经纬度或坐标点抽稀)

    起因 最近在做一个车联网项目,有一个场景是车辆定时上报当前所在经纬度等位置信息上报给平台,平台通过web页面在高德地图上展示车辆行驶路径. 由于车辆上报规则是每隔4s上报一次,一个小时也就是900个点 ...

最新文章

  1. Google Mock(Gmock)简单使用和源码分析——简单使用
  2. 随机存取是什么意思_手机小白必看!12GB+256GB,同样是GB,它们到底有什么不同?...
  3. 软件设计师 - 函数依赖 和 范式
  4. C语言中的static
  5. 初学python之路-day11
  6. Eclipse主题切换
  7. 房友手机服务器安装文件,房友软件服务器地址
  8. VideoCodec 入门篇 - 00 (编解码简介)
  9. Docker镜像常用命令
  10. 如何将卫星影像或者航拍影像叠加到CAD设计图上(Auto CAD版)
  11. PHP根据键值,对二维数组重新进行分组
  12. 记一次fastadmin图片上传大小受限制的修改
  13. 有了字节流,为什么还要有字符流
  14. 使用freemarker生成word文档(包含遍历多条数据、图片)
  15. 动态规划(准备工作)
  16. AndroidStudio实现相机拍照或从相册中选取照片并显示
  17. 联想MIIX520笔记本电脑屏幕亮度无法调节问题
  18. Android导航语音识别——读后听写语音识别(嵌入式)
  19. library not found for - 解决办法
  20. pb9 新建一个library时new键是灰的

热门文章

  1. idea 报系统分区磁盘不足_磁盘空间不足—win7系统磁盘空间不足巧妙解决
  2. node-gyp编译失败
  3. 2.MySQL查询字段为NULL的数据
  4. Qt 使用QNetworkAccessManager实现Http操作
  5. 很多小银行给的存款利息比大银行高出很多,这些银行安全吗?
  6. windows ODBC数据源管理程序(64位) 添加系统DSN时没有Microsoft Acess Driver(*.mdb,*.accdb)选项的解决办法
  7. Codeforces:div3_719 记录
  8. Excel添加宏之 大写字母前加空格
  9. SAP 委外加工与工序外协
  10. 蓝桥杯单片机比赛学习:3、独立按键与矩阵按键的基本原理