FastBuilder算法
最近在开发时遇到一些问题,我需要在一串散列数组当中找出一些单独的矩形,当然,块数肯定是越少越好,当我发现经典的超像素无法解决问题的时候,就决定自己来写一个算法。
第一步 功能分析
比如我们有这样一个矩形
我们需要把这个矩形给分割为最少的矩形,但是这个是有很多解的,我们选取其中一种给大家展示一下
分割之后,我们成功的将此矩形内相同的方块分割为了三个标准的矩形,这就是大部分超像素算法无法带入我们这个实际要求的原因,那么我们如何解决?
第二步 具体实现
一开始我的思路就是我们是否可以进行单方向的搜索来达到分割的效果,那我们就来看看单方向如何进行搜索。
算法1.0版本:单方向搜索
如图就是单方向搜索的进行步骤,我们可以看到,这个原理就是从每一格的最左边开始向左边搜索,直到我们搜索到无法继续搜索,同时判断其下方是否可以合并为一个更大的矩形,假如可以