导 读
本文主要介绍轮廓逼近的原理及其在OpenCV中的使用演示。同时可在文末获取Python-OpenCV学习文档pdf。
背景介绍
轮廓逼近的应用比较广泛,如下路线俯视图的简化:
通过迭代平滑一些顶点,从而产出更加线性的路线:
当然这只是轮廓逼近的其中一个应用,后续我们将详细介绍轮廓逼近的原理和OpenCV中的使用实例。
轮廓逼近的原理
轮廓近似使用Ramer–Douglas–Peucker(RDP)算法,旨在通过给定阈值减少折线的顶点来简化折线。通俗地说,我们采用一条曲线并减少其顶点数量,同时保留其大部分形状。如下图所示:
给定曲线的起点和终点,算法将首先找到距离连接两个参考点的直线距离最大的顶点。我们称它为最大点。 如果最大点位于小于阈值的距离,我们自动忽略起点和终点之间的所有顶点,使曲线成为一条直线。