四分木 (4 分木) を使用して、特定の BMP に情報を保持しようとしています。
BMP を指定してツリーを構築する方法を理解するのに苦労しています。
基本的に、すべての葉がピクセルを表すような構造になっています。各ノードには 4 つのポインターがあり、それぞれが画像内の残りの 4 つの象限の 1 つを指しています。したがって、各ノードは現在の画像を 4 つの部分に分割します。リーフに到達するまでに、1 つの特定のピクセルに到達します。
特定の画像をマッピングするためにツリーを構築する方法がわかりません。画像の次元が 2 のべき乗であると仮定すると、どうすればよいでしょうか。再帰関数がおそらくこれを最もエレガントに実行できることは理解していますが、画像のどこにいるのかを追跡する方法を理解するのに苦労しています。
これは C++ であり、現在私の quadtree.h ファイルには Node* ルートが含まれており、ノードはピクセル要素と他のノードへの 4 つのポインターを持つ構造として定義されています。各内部ノード (非リーフ ノード) は、それが導く 4 つの RGB 値すべての平均値を保持する必要があります。
アルゴリズムを作成しようとしていますが、.h ファイルに 1 つまたは 2 つの構造体を含める必要があると思います。この問題を解決するためのより良い/よりクリーンな方法はありますか?