2015-08-27 109 views
-2

例如,如何根據水平邊緣來分割這個書架的兩排書籍?我用索貝爾邊緣檢測器來檢測邊緣,但我不知道如何或用什麼條件來分割圖像。如何分割基於最長水平邊緣的圖像?

+1

「_split this shelf of this shelf_」...圖像丟失。你能發佈迄今爲止的代碼嗎? –

+1

和[mcve](http://stackoverflow.com/help/mcve)。 – kkuilla

+0

@il_raffa - 圖片網址在帖子中,但由於用戶的低代表而沒有顯示。我已經加入了。 – rayryeng

回答

1

我可以推薦你兩種不同的方法來解決這個問題。

1)機器學習方法。這需要一些標記數據,指示邊緣位置的y座標,然後HOG特徵加上隨機森林分類器將完成這項工作。

2)圖像處理方法。首先,讓我們來看看的what i have done輸出:

enter image description here

藍色指示的是所述的分離邊緣的期望的y位置的分數。

這種方法總是依賴於您的數據的一些假設,在這裏我們假設目標水平邊緣分隔書籍,其中包含很多垂直線。也就是說,我們正在尋找y座標,其中定位了未被垂直線切割的長水平線。

一旦定義我們的目標,其餘的開始很容易。

首先我們需要一個直線檢測器,hough transform會做。

enter image description here

其次,我們投票支持的是使用兩個成績最好的分離器,每個Y座標:

1)第一得分描述多少長水平線(先前發現的)位於鄰里。我們稱之爲s_h

2)第2分數描述多​​少長垂直線位於附近。我們稱之爲s_v

enter image description here

最後,我們只需要結合S_VS_H做出最後的比分。例如,

S = S_H /(S_V + 1)

利用這一點,我們得到張貼在年初第一個得分王的地圖。一些進一步的後處理需要完成,但不應該很難。

這裏只是解決它的一種可能性,在這裏您可以找到my code presented in a notebook

+1

如果您提供了代碼以便其他人可以重現您生成的內容,那將是一件好事。記住,當你寫一個答案時,你不僅要幫助OP解決他們的問題,而且你可能會幫助未來的訪問者解決這個問題,他們可能會遇到同樣的問題。 – rayryeng

+2

我已經添加了一個ipython筆記本的鏈接,以顯示它是如何工作的。但是我所做的事情往往會過分依賴這張圖片,因此需要切換某些細節以使其更加穩定。但是,如果您可以擁有更多像這樣的圖像(比如100?),我強烈建議您調整機器學習方法。 –

+0

如果你在MATLAB中這樣做的話會更好,因爲這是問題的標記,但是一個IP筆記本比沒有更好!......絕對比OP更值得 – rayryeng