【问题标题】:Multiple images placed in 1 larger image with scaling applied多个图像放置在 1 个较大的图像中,并应用了缩放
【发布时间】:2012-11-10 03:43:05
【问题描述】:

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

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

  2. 为数组中的每个图像计算纵横比。 (它们都是不同的)

  3. 找出它需要多大的比例(比如总图像的 6%)

  4. 取总图像大小/纵横比的平方根以找到一维

  5. 将我们知道的边乘以纵横比得到另一个维度。

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

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

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

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

有没有一种算法可以在了解所有相关尺寸的情况下选择放置图像的最佳位置?旋转没问题(所以100x50可以当作50X100处理)

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

【问题讨论】:

    标签: java image algorithm


    【解决方案1】:

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

    【讨论】:

    • 我会考虑,那个解决方案似乎不允许旋转,但作为一个 NP 难题,它可能很难允许旋转
    • @user1281385 适当尊重这类问题很重要。它认为它们比实际更容易,这是最大的危险。不过,你似乎已经对这个产生了欣赏。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    相关资源
    最近更新 更多