查找形状边界上的点坐标

时间:2011-02-07 21:01:35

标签: algorithm image language-agnostic shapes

假设我有这样的形状:

enter image description here

在我想要画豆子的所有笑话都用尽之后,我想找到形状边缘上的点。我知道可以有很多,所以它们之间的距离是可以接受的。

是否存在针对此类需求的算法?还是一个软件?我提出的所有解决方案都涉及大量的手工工作,特别是如果我想绘制略有不同的形状。

Stackoverflow智慧,请帮助。

2 个答案:

答案 0 :(得分:6)

您可以直接水平和垂直扫描像素以查找颜色边界,或者,如果您想要更复杂和通用的解决方案,您可以使用gradient method来检测边缘:

enter image description here

修改

回答你的评论,图片只是一个包含像素值的二维数组。您可以测试每个像素并选择具有特定颜色的像素。像这样:

enter image description here

结果是你的边缘像素:

{{35, 107}, {35, 108}, {35, 109}, {35, 110}, {35, 111},
 {35, 112}, {35, 113}, {35, 114}, {35, 115}, {35, 116},
 {35, 117}, {35, 118}, {35, 119}, {35, 120}, {35, 121},
 {36, 103}, {36, 104}, {36, 105}, {36, 106}, {36, 107}, etc....

答案 1 :(得分:2)

听起来你正在寻找“矢量化”,或者更确切地说是“位图矢量化”。如果您对位图进行矢量化,您将获得形状的矢量版本,它将为您提供所有边界坐标。

如果有,可以使用多种解决方案,包括AutoTrace:http://autotrace.sourceforge.net/

相关问题