将多个图像放置在1个较大的图像中并应用缩放

时间:2012-11-09 17:32:54

标签: java image algorithm

我正在努力将所有图像变成更大的图像;缩放应用于外部(可以是多个事物中的一个,而不是中继到图像)。这些是我现在正在采取的步骤:

  1. 计算大图像的尺寸(比如1000x1000)

  2. 对于阵列中的每个图像,计算纵横比。 (他们都不同)

  3. 找到所需的百分比(比如总图像的6%)

  4. 取总图像大小/宽高比的平方根来查找一个维度

  5. 将我们所知道的方面乘以宽高比以获得另一个维度。

  6. 将图像缩小到新的计算值

  7. 现在我遇到麻烦的地方)在较大的图像上找到一个适合缩放图像的空间。如果有多个随机选择一个。

  8. 重复直到图像填满。大约有4000张图片需要放入。

  9. 有很多非常小的图像(1x1,2x1 2x2等)可用于填充。问题是随机方法,第一个空间方法不是很好,通常最终得到一些不适合的图像。

    是否有一种算法可以选择最佳位置来让图像知道所涉及的所有维度?旋转很好(所以100x50可以被视为50X100)

    我目前正在使用Java,但问题适用于任何语言。

1 个答案:

答案 0 :(得分:1)

您正在查看的算法属于称为整数编程的字段。这是一类优化问题的解决方案,其中所有输入都是整数(而不是实数)。您询问的具体问题是名称bin packingthis page上有关于此问题的示例代码。