回答
查看連接組件標籤:http://en.wikipedia.org/wiki/Connected-component_labeling。在這種情況下,您可以找到白色像素或黑色像素的連接組件(由於圖像中白點較少,因此白色在計算上更容易)。
我可以提出一個幼稚的做法作爲開始:
在圖像中,做一個二進制二進制搜索對於圖像中的中點(x,y)。 從這一點開始,執行洪水填充。
如果填充圖形的邊界不是圖像的邊界,那麼你找到了一個封閉的圖形,因此它的邊界框。
如果它填滿了整個圖像,那麼你什麼也沒做,所以把圖像分成四個分支,並且遞歸地做同樣的事情。 (您不需要檢查先前找到的邊界框圖內的點,從而在此過程中縮小搜索空間)。
對於每一個元素:
They highest y - 1 is the top of the rectangle.
The leftmost x - 1 is the left of the rectangle.
The lowest y + 1 is the bottom of the rectangle.
The rightmost x + 1 is the right of the rectangle.
說明最高我的意思是最接近屏幕不是最大的價值的頂部。
你誤會了我一點:有圖片(0和1的矩陣),我想找到這些矩形 - 它們的座標。 – Patryk 2012-01-14 04:42:53
它看起來像OpenCV有一些算法找到已經實現的輪廓的邊界框。因此,研究他們的功能如何起作用可能是一個很好的開始。 http://opencv.itseez.com/doc/tutorials/imgproc/shapedescriptors/bounding_rects_circles/bounding_rects_circles.html
您可以計算最小生成樹並刪除最長的邊。然後你可以計算出k-means。刪除另一個長邊並計算k-means。沖洗並重復,直到你有N = 10。我相信這種算法被命名爲單鏈路k均值,並且該簇類似於voronoi圖:
「單鏈路k聚類算法...正好是Kruskal算法...相當於尋找MST和刪除k-1最昂貴的邊緣。「
例如,見這裏:由最高我的意思是最接近屏幕不是最大的價值的頂部
They highest y - 1 is the top of the rectangle.
The leftmost x - 1 is the left of the rectangle.
The lowest y + 1 is the bottom of the rectangle.
The rightmost x + 1 is the right of the rectangle.
注:https://stats.stackexchange.com/questions/1475/visualization-software-for-clustering
然後爲每個羣集應用此規則。
- 1. 確定邊界線的矩形Qt中
- 2. 確定WPF元素相對於某些父類的邊界矩形
- 3. 定製邊界矩形的形狀
- 4. 確定元素是否在邊界內?
- 5. 獲取指令外的元素的邊界矩形
- 6. 定義點數組的邊界矩形
- 7. 如何在WPF中的多個形狀周圍獲取單個邊界矩形
- 8. 如何獲得PathFigureCollection邊界矩形
- 9. 計算邊界多個元素silverlight
- 10. Wp8地圖邊界矩形
- 11. 餅圖邊界矩形
- 12. UIDynamicItem與非矩形邊界
- 13. 矩形區域和邊界
- 14. 從邊界切割矩形
- 15. QGraphicsItem:繪製多邊形時重疊邊界矩形
- 16. 用邊界框確定多邊形相交的有效方法
- 17. 如何確定多邊形的類型
- 18. 多邊形的邊界框
- 19. java如何將多個矩形合併爲一個多邊形
- 20. 確定由一組矩形元素定義的區域是否爲矩形
- 21. XNA - 如何編輯另一個類的矩形邊界
- 22. android-圓形矩形邊界爲佈局
- 23. 元素矩形
- 24. 確定一個點的多邊形是
- 25. 如何確定矩形
- 26. 如何確定一系列點(或多邊形)是否在矩形區域內?
- 27. 如何用n個矩形近似一個多邊形?
- 28. 處理多邊形的多邊形算法,處理跨邊界的多邊形
- 29. 相對於邊界矩形縮放多個對象
- 30. 邊界框與矩形的對比
看看我們的姊妹網站[DSP.SE]。 – 2012-01-15 03:17:22