いくつかの制約付きで、画像を小さな画像に分割できるアルゴリズムを探しています。制約の 1 つは、空のピクセルを意味する「空白」を最小限に抑えることです。もう 1 つは、分割する画像の最大量を指定することです。
たとえば、下の画像を見てみましょう。その中にはたくさんの「空白」があります。この画像を他のいくつかの画像に分割して、この画像が占めるメモリの量を減らし、この画像が必要とする「描画」の量を減らしたいと思います。
.=transparent pixel
x=colored pixel
....................
.xxxxxxxxxxx........
...xxxx...xxxxxx....
.............xxxxx..
...............xxx..
...............xxx..
....................
..xxxxxx............
.....xxxxxxxxxxx....
.........xxxxxxxxxx.
....................
画像を最大4つの画像に分割したいとしましょう。可能な解決策は以下のようになります。
....................
.111111111111111....
.111111111111111....
.............22222..
.............22222.
.............22222..
....................
..3333333...........
..33333334444444444.
.........4444444444.
....................
誰かがこれのためのアルゴリズムを持っているか、これを行うアルゴリズムの名前を知っていますか? しばらく探していて、関連するアルゴリズムをいくつか見つけましたが、見つけたアルゴリズムは空白を考慮していません。たとえば、画像を非透明ピクセルのみをカバーする長方形に分割し、膨大な量の長方形になります。私が扱っている実際のデータは 1024*1024 ピクセルの画像であり、それらを最大 16 の部分に減らしたいと考えています。秘訣は、最小限の空白を使用して 16 個の画像を抽出することです。