我正在尝试使用四叉树(四叉树)来保存给定 BMP 中的信息。
我正在努力弄清楚如何在给定任何 BMP 的情况下构建树。
基本上结构是这样的,每片叶子代表一个像素。每个节点有 4 个指针,每个指针指向图像中剩余的四个象限之一。因此每个节点将当前图片分成4个部分。当你在叶子上时,你就在一个特定的像素上。
我不确定如何构建一棵树来映射某个图像。假设图像的尺寸是二次方,我该怎么办。我知道递归函数可能最优雅地做到这一点,但我正在努力弄清楚如何跟踪我将在图像中的位置。
这是在 C++ 中,目前我的 quadtree.h 文件包含一个 Node* 根,其中一个节点被定义为具有像素元素和 4 个指向其他节点的指针的结构。每个内部节点(非叶节点)应该保存它导致的所有 4 个 RGB 值的平均值。
我正在尝试制作一个算法,但我认为我可能需要在 .h 文件中包含一个或两个结构。有没有更好/更干净的方法来解决这个问题?