正方形 (mxn 次元) ではない画像があります。また、その次元は底が 2 ではありません (つまり、m not = 2^k & n not = 2^k)。以下を使用して、画像をより大きな正方形 (2 の次の累乗) に配置することで、これに対処しました。
int width = (int)Math.ceil(Math.pow(2, Math.log(img.width)/Math.log(2)));
int height = (int)Math.ceil(Math.pow(2, Math.log(img.height)/Math.log(2)));
どちらが最大の次元になるかに応じて、正方形を最大次元で描画するように設定します。つまり、次のようになります。
if (img.width > img.height) {
// draw width * width square
}
if (img.height > img.width) {
// draw height * height square
}
問題:
四分木は、すべての非画像ノードをツリーに格納しているため、完全に異なって見えます。これは明らかに想定される画像データ (最小/最大深度) とツリー全体の形状そのものに影響を与えます。私の質問は、これを効率的な方法で行っていますか?もしそうなら、画像に属さないデータを保存しないようにするにはどうすればよいですか? 正方形ではない画像を描画するのが最善の方法ではない場合、誰かが私を正しい方向に向けることができますか? Google のすべての記事は、私の目的には深すぎるようです。