【发布时间】:2017-11-20 21:20:47
【问题描述】:
图像马赛克使用一组预定义的平方图像来构建更大的图像(例如here)。 有很多解决方案,实现这个效果非常简单。但是,由于以下限制,它变得更加困难:
- 原始马赛克的形状是抽象的。任何凸多边形都可以。
- 每个马赛克只能使用一次。
- 马赛克不需要绝对打包(即占据画布的 100%),但应尽可能打包,不重叠。
我正在尝试自动化古老的镶嵌艺术,特别是 Opus palladianum 技术。
我的想法是使用模拟退火或其他启发式方法来优化每个不规则马赛克的位置和旋转,在每次迭代中交换两个,试图最小化一些反映与目标图像相似性的能量函数以及“ packness" 的瓷砖。 我正在尝试在 python 中实现这一点,任何想法和帮助将不胜感激。
例子:
【问题讨论】:
-
到目前为止你有什么?模拟退火的实现?适应度函数?
-
If you have a problem with your simulated annealing implementation, come back with a specific question about it。我相信寻找如何解决问题的想法的问题太宽泛而无法回答。但是go the Chat 并与人们谈论它是完全可以的。
-
与其使用“预定义的形状”,不如“剪切”最终图像(如 Voronoi)来创建这些形状要容易得多。
-
@acdr 我仍在概述算法。实施 SA 或 GA 很容易,我的主要问题是找到解决问题的最佳策略。
-
@karlphillip 这不是家庭作业,我已经完成了(这里是高级 SE)。这是我的个人艺术项目。我想粉碎许多Portuguese tiles 来制作图像马赛克。我真的只需要一个方向,就像有人说这是X类型的问题,应该用Y方法解决。
标签: python image photographic-mosaic