2011-02-07 85 views
5

比方說,我有一個形狀像這樣:形狀上的邊界發現點的座標

enter image description here

希望我所有的笑話來繪製豆類都用盡之後,我想找到點在形狀的邊界上。我知道可以有很多,所以他們之間的公平距離被接受。

是否有這樣的需求算法?或者一個軟件?我提出的所有解決方案都涉及許多手動工作,特別是如果我想繪製稍微不同的形狀。

Stackoverflow智慧,請幫助。

回答

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.... 
+0

不知道你是怎麼做的,但澄清:我需要座標的列表,而不是生成的圖像。 – Tudorizer 2011-02-07 21:16:19

+1

@Tudorizer圖像是一個矩陣。座標列表是(行,列)像素是白色的列表! – 2011-02-07 21:18:24

2

這聽起來像你要尋找的「量化」,或更確切地說「位圖矢量化」。如果你矢量化你的位圖,你會得到你的形狀矢量版本,它會給你所有的邊界座標。

如果是這樣,有許多可用的解決方案,包括自動跟蹤:http://autotrace.sourceforge.net/