JavaScript中的矢量化算法

Vectorization Algorithm in JavaScript

本文关键字:算法 矢量化 JavaScript      更新时间:2023-09-26

所以我有一个图像,我使用canny边缘算法计算了它的边缘,这一切都很好。

但是现在我想把这些边变换成向量。我的意思是将边缘绘制划分为直线组件(它们应该是可见的,所以长度不是1像素(。作为返回值,我想要一个数组,其中包含组成边缘绘制的所有向量。

这类问题有流行的算法吗?由于我是用javascript做这件事的,所以很多矢量化算法都不能很好地工作,至少从我目前尝试的情况来看:/。我看到这是关于Douglas Peucker算法的,它对我来说效果不太好。无论如何,任何想法都很酷:(

将边划分为直线段并不是真正的矢量化。这实际上只是边缘点上的一个点减少,然后将这些点连接起来。你可以用Ramer Douglas Peucker这样的东西来实现这一点。

(如果你有无序的集群,你可以对每个集群进行像Jarvis March of Graham扫描一样的船体行走,这样你就有了一组"可遍历"的点,然后再将它们输入RDP(

将点连接成线段的想法的问题在于,你无法放大它:它看起来很糟糕。真正的矢量化将更像是一场激烈的竞争,但在JS中。如果你发现了,请告诉我,我一直在寻找同样的东西。(您可能可以使用emscripten通过LLVM将C实现转换为JS,但我还没有绝望地这么做(