Java算法——识别网格内不同落区
需求:将一个网格上面达到阈值的点筛选出来 之后提取这些区域,每个区域拟合出一个椭圆。(这里只介绍到抽离出落区的算法)
解决思路:
我们首先将一个网格上面达到阈值的点选出来后赋值为1,这样就形成了 下面 这个样式的图形。这样的图形还不足以将各个区域挑选出来,如果我们可以做到将每个区域识别出来后标上对应的标志,那么就可以轻松的获取每个我们想到的落区了,那么问题就是如何将这些我们眼睛看上去认为他属于一个区域的落区识别出来,下面就是算法。
数据原图:
首先展示一下 算法识别的效果:
下图可以看出每块区域已经有了自己的编号,之后的拟合椭圆就可以先获取每块区域,然后单个拟合。
最后拟合椭圆的效果图(该图和上面数据不是一个数据仅供参考):