四叉树(quad tree)数据结构能把大量坐标数据压缩保存到内存空间,它总是将给定空间分割为 4 个, 然后以递归形式表示,故得名四叉树。其最著名的应用就是对黑白图像(当然也可以是任何一个二值图像)的压缩。
四叉树会以字符串的形式对 2N⋅2N 的黑白图像进行如下压缩,
- 递归退出的条件:
- 图像的所有像素为黑色,则无论图像的大小是多少,四叉树在该分支上的压缩结果都是 b(black)
- 图像的所有像素为白色,则无论图像的大小是多少,四叉树在该分支上的压缩结果都是 w(white)
- 图像的像素不都是相同颜色,则先把图像纵向及横向个一分为二(四等分),然后对 4 个小图像(每个小图像又可接着递归压缩)进行四叉树压缩(四叉树存储),则整个图像的压缩结果为:左上部分的压缩结果 右上部分的压缩结果 左下部分的压缩结果 右下部分的压缩结果
- X=X1+X2+X3+X4=(X11+X12+X13+X14)+(X21+X22+X23+X24)+…