algorithm - 尝试理解四叉树概念并将其应用于存储图像的着色信息

标签 algorithm tree quadtree

我看了很多文章,但似乎没有一篇能回答这个问题。或者也许我只是不明白。我正在尝试构建一个四叉树,以便它可以表示一个图像。叶节点保存像素,非叶节点保存其子节点的平均值像素。

我的问题是:

叶节点只保存像素是如何工作的?为什么其他节点不保存像素?我们如何知道将原始根节点分割多少次以表示给定图像?我们是否只是将它分割 n 次,其中 n 是高度和宽度(对于正方形)?

编辑: 那么我如何跟踪叶节点,以便知道何时在该位置添加像素?现在我有一个辅助函数,可以为我划分区域,跟踪宽度和高度。

最佳答案

四叉树最适合大小为 2 的幂的正方形图像(例如,大多数纹理)。您不应该认为每个节点都代表一个“像素”。相反,可以将其视为表示“大小为 2^k 的方形像素 block ”。在最终叶子的情况下,k 为 0,因此每个叶子节点代表一个大小为 1 的方形像素 block ,即单个像素。树中的内部节点代表越来越大的图像部分。

关于algorithm - 尝试理解四叉树概念并将其应用于存储图像的着色信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5320110/

相关文章:

javascript - 如何在字符串中以正确的间隔插入换行符?

Python和压缩算法性能

c - 如何仅使用 Push、Pop、Top、IsEmpty、IsFull 对堆栈进行排序?

list - 构造函数不在范围/模式匹配解析错误中

objective-c - objective-c 的四叉树或KD树?

c++ - 为什么在这种情况下指针变慢

algorithm - 为什么在链表中查找循环时将指针增加 2,为什么不增加 3、4、5?

java - 使用 JPA 创建树

python - 从标识符构建 json 树结构

c++ - 四叉树只绘制在窗口的右上角