2013-06-30 20 views
0

我在圖像中有一個對象。我想確定屬於內部邊界的點,外部邊界和沒有邊界的對象本身。如何確定屬於物體內部和外部邊界的點?

一個例子是圖像下方顯示

enter image description here

對象之間的中間區域也是背景。

該對象只包含黑色像素。

我們想確定外點內分點的

  • 座標屬於的對象,但不邊界
  • 座標

    1. 座標。

    感謝

  • 回答

    3

    一個可能的策略:

    1. 洪水填充外觀到一些顏色,說紅。
    2. 任何觸摸紅色像素的黑色像素都是外部邊框像素。
    3. 任何觸摸白色像素的黑色像素都是內部邊框像素。
    4. 所有其他黑色像素位於對象的內部。

    點2-4可以在圖像的單次掃描中同時進行評估。

    如果你想這樣做的速度非常快,你可以使用評估片段着色器的OpenGL。但是這涉及更多一點。

    +0

    不錯的做法。 +1 –

    1

    在MATLAB

    l = bwlabel(img, 4); % label white regions using 4-connect neighbors 
    [or oc] = find((l == 0) & imdilate(l == 1, strel('disk',1,0))); % outer boundary 
    [ir ic] = find((l == 0) & imdilate(l == 2, strel('disk',1,0))); % inner boundary 
    
    0

    我沒有嘗試,但嘗試做一個僞邊緣檢測:

    filter=[0 -1 0 ; -1 4 -1 ; 0 -1 0]; 
    newImage=conv2(yourImage,filter); 
    

    它假設只(或主要),以確保外部和內部egdes。之後,如果您將執行yourImage-newImage,則會獲得不是邊緣的abject內部像素。

    我認爲它可以使一些工作,以進一步解決問題。

    相關問題