2014-01-06 182 views
0

我想檢測圖像中的形狀(藍色區域)。如何從用戶輸入座標(紅點)開始讀取像素,掃描點周圍的像素,並在跨越形狀邊界時停止讀取,而不是像下面那樣掃描整個圖像?掃描圖像像素

for (int y = 0 < height; y++) { 
    for (int x = 0; x < width; x++) { 
     // Read and store pixel value and location  
    } 
} 

enter image description here

+0

藍色的形狀總是長方形嗎? – ChrisW

+2

如果顏色定義了形狀,則可以將輸入位置作爲填充填充的起點。洪水填充停止在假像素值。 – Cornstalks

+0

@ChrisW它可以是隨機的形狀 – askingtoomuch

回答

1

如果你想獲得屬於周圍的點狀像素的列表,你可以嘗試像一個flood fill,收集的「填充」他們,而不是像素。不屬於形狀的像素的不同顏色是維基百科示例的「黑色」顏色,形狀的顏色是「白色」(可填充空間)。

+0

如果在形狀中有不同強度的孔或像素,它會起作用嗎? – askingtoomuch

+0

關於洞:是的;關於具有不同強度的像素:您必須按照算法「看到」顏色(特別是目標顏色)的方式來滿足您的需求。最簡單的方法是完全匹配;但你可以做不同的事情。 – ShinTakezou

+1

感謝您指引我在正確的方向。我期待有角度/極性掃描 – askingtoomuch