1 先看效果图
![](https://i-blog.csdnimg.cn/blog_migrate/06e7a87b2a99ebbc99f40d30243ead17.png)
这是轮廓中轴的计算,中轴代表的是轮廓的骨架,在人体姿态识别、图像处理中是最基本的元素。
![](https://i-blog.csdnimg.cn/blog_migrate/b0a6ee24d0464a2b5e2750c6d0d72fcf.png)
这是轮廓往外偏置一定距离的图示。
cgal中实现轮廓中轴骨架生成及进行轮廓的偏置的是create_interior_straight_skeleton_2(),create_offset_polygons_2()这两个接口,使用起来也不难,需要提醒的是:cgal的轮廓偏置和clipper不太一样,clipper可以实现输入的偏置距离是正数则向外偏置,负数则向内偏置,而cgal的偏置距离只能是正数,向内还是向外,取决于轮廓本身的取向,一般的,顶点逆时针方向为外轮廓,向内偏置;顶点顺时针方向的轮廓是内轮廓,向外偏置,cgal中有CGAL::Polygon_with_holes_2<K>这么个数据结构,专门表示带孔的轮廓,带孔的轮廓偏置后满足外轮廓向内偏置,内孔向外偏置。
2代码实现
这部分代码比较简单,主要是简单地使用这两个接口,cgal里面还有很多接口实现各种各样的功能,东西太多了,学不过来,笔者也只是学自己需要用到的接口。
#include<iostream>
#includ