我正在寻找一种算法,可以将图像分割成更小的图像,但有一些限制。一个限制是使用最少的“空白”,意思是空像素。另一种是指定最大数量的图像来分割它。
例如,让我们看看下面的图像。里面有很多“空白”。我想把这些图像分成几个其他的图像,这样我就可以减少这个图像占用的内存量,也可以减少这个图像需要的“绘图”量。
.=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 个图像。