矢量形状细化

4
我正在寻找一种用于计算矢量形状骨架的算法。以下是限制条件:形状是由分段的三次/二次样条曲线、贝塞尔曲线和线段表示的闭合路径相减的结果,并因此可能包含空洞。
如果将形状表示为光栅连接组件,则有许多准备好的制造算法和实现,例如 Zhang-Suen、P. Kwok、3-4 距离变换,甚至还包括在《图形宝石 IV: 使用邻域地图进行二进制图像稀释》中的 C 实现。
因此问题是:是否有一种算法能够以矢量输入方式干净地计算矢量骨架,而不需要将路径光栅化、稀化并转换回矢量表示?
补充说明: 是否有任何处理矢量形状的数学形态学工具?

你能贴一个你的矢量形状的例子吗? - Ani
这是一个封装的PostScript示例文件:https://docs.google.com/open?id=0B_L82eoraNOTNkNhdURqWGJlYU0 - Mykyta Kozlov
谷歌文档和Word都无法为我打开那个文件。请发布该文件的光栅化版本链接。 - Ani
这是它的链接 https://docs.google.com/open?id=0B_L82eoraNOTY01nTmd3cFFTc0U - Mykyta Kozlov
谷歌文档对我来说打开得很好。 - Nakilon
1个回答

0

有趣的问题!我想当我们需要查看矢量图像以及它们如何编码时,就会涉及这个问题。在这种情况下,我会选择SVG,它基本上对线条、多边形、点进行编码,以便可以重新绘制或重新渲染成更高的分辨率。因此,对于任何使用SVG编辑器或矢量图形编辑器正确构建的图像,基本上是将形状和线条进行编码以便重新绘制。

因此,为了得到从SVG获取的骨架化也是SVG的结果,我们需要复制多边形重新编码的过程,并在多边形空间中执行骨架化,然后重新编码形成骨架的一组线条。在计算机图形学界,这基本上给你了一个Straight Skeleton!这会产生任意缩放的骨架!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接