所以我有以下图像:
现在我希望找到每个单独的断开形状的中心点。如果可能的话,我还想找到宽度和高度。
我正在使用 Java 和 java.awt.image 包,但即使只是这个问题的一般解决方案也会有所帮助。
我自己的想法是:
- 遍历并找到第一个白色像素。
- 从该像素执行 BFS,用数字 1 标记它找到的白色像素。
- 完成后,继续遍历图像,该图像在第一个白色像素处停止,没有分配/标记数字。
- 一旦找到,执行 BFS 并用数字 2 标记找到的所有像素。
- 起泡,冲洗并重复。我的意思是......继续这样做直到图像结束。
- 您要达到的数字是不同形状的数量。
但这似乎有点密集,然后我必须找到中心、宽度和高度。有没有更简单的方法?有任何想法吗?