我目前正在試圖找到一種在二進制圖像中存儲單獨「分支」的整潔方式。這個小動畫解釋它:OpenCV:沿着單像素分支搜索像素
我沿着我需要收集的像素指標,構成了一個單像素寬的分支的分支去。當我遇到交匯點時,它應該拆分並存儲新的分支。
解決這個問題的一種方法是創建一個3x3子區域,找出其內是否有白色像素,並相應地移動它,如果有兩個以上的區域,則創建一個交點。始終保存以前的子區域,以便可以使用它來確保我們不會移動到我們已掃描的區域。 然而,要弄清楚我將如何去解決這件事有點棘手。
我基本上需要根據「線/曲線」層次結構重新排序像素。然後,應用程序的另一部分將重新繪製數字,這些數字通過在點之間創建線條進行內部工作,因此需要讓它們「排序」。
這看起來像一個[圖遍歷問題](http://en.wikipedia.org/wiki/Graph_traversal),其中連接點是節點和單像素寬的分支的圖的邊。從任意初始點開始,您可以通過應用圖形遍歷算法(如[廣度優先搜索](http://en.wikipedia.org/wiki/Breadth-first_search)或[深度優先搜索])來發現所有分支和交叉點](http://en.wikipedia.org/wiki/Depth-first_search) – Alexey
此外,您可以查看[Connected Components Labeling](http://en.wikipedia.org/wiki/Connected-component_labeling) – Alexey
@pray你需要在這裏搜索嗎?從分支開始並沿着分支移動是否是一個限制?如果您可以「看到」整個圖像,則可以更輕鬆地對分支進行分組和標記。如果你不能,那麼你需要先進行深度搜索,然後返回交叉點搜索另一個;每次存儲數據 - 正如阿列克謝現在所建議的那樣。 – baci