7

图像马赛克使用一组预定义的平方图像来构建更大的图像(示例here)。有很多解决方案,实现这个效果非常简单。但是,由于以下限制,它变得更加困难:

  1. 原始马赛克的形状是抽象的。任何凸多边形都可以。
  2. 每个马赛克只能使用一次。
  3. 马赛克不需要绝对打包(即占据画布的 100%),但应尽可能打包而不重叠。

我正在尝试自动化古老的镶嵌艺术,特别是Opus palladianum技术。

我的想法是使用模拟退火或其他启发式方法来优化每个不规则马赛克的位置和旋转,在每次迭代中交换两个,试图最小化一些反映与目标图像相似性以及“包装性”的能量函数瓷砖。我正在尝试在 python 中实现这一点,任何想法和帮助将不胜感激。

例子:

在此处输入图像描述

4

1 回答 1

3

我希望您可能会使用具有“非重叠”约束的 GA(遗传算法)来完成这项工作。

单个(每个凸多边形)的参数是:

  • 初始位置
  • 回转
  • (尺寸 ?)

当多边形不重叠(并且靠近其他人)时,您的拟合函数将被构建为给每个人最好的注意

您可能会看到此视频视频作为示例。

问候

于 2017-06-30T15:16:54.100 回答