二叉树
解决一条线上所有点的聚合问题,比如一条线段最左端值为0,最右端值为10000,有1000个点随机分布在线段上。我们要把这些点最密集的区域挑出来,将其合并为1个带权值的点,就可以用到二叉树的合并算法。
四叉树
解决平面上点聚合的问题,比如地图上有10000个随机点,要生成这些点的热力图,就可以用到四叉树算法。
八叉树
解决空间上点聚合的问题,比如长宽高分别为100的的立方体上随机分布着10000个点,我们可以使用八叉树算法把最密集的区域调出来,用指定数量的点来代表他们。 对应到1个非常具体的场景就给一张图片,通过算法挑出它主色调,生成指定颜色数量的配色方案
八叉树算法也是在颜色量化中比较常见的,主要思路是将R、G、B通道的数值做二进制转换后逐行放下,可得到八列数字。如 #FF7880转换后为
R: 1111 1111
G: 0111 1000
B: 0000 0000
再将RGB通道逐列粘合,可以得到8个数字,即为该颜色在八叉树中的位置,如图。
在将所有颜色插入之后,再进行合并运算,直到得到所需要的颜色数量为止。
在实际操作中,由于需要对图像像素进行遍历后插入八叉树中,并且插入过程有较多的递归操作,所以比中位切分法要消耗更长的时间。
中位切分法
以上几种树所解决的聚合问题,也可以用中位切分法更高效地实现
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!