圖像馬賽克使用一組預定義的平方圖像來構建一個更大的圖像(示例here)。 有很多解決方案,實現這種效果相當微不足道。然而,在以下約束條件下變得更加困難:Python馬賽克與抽象形馬賽克
- 原始馬賽克的形狀是抽象的。任何凸多邊形都可以。
- 每個馬賽克只能使用一次。
- 馬賽克不需要絕對包裝(即佔據畫布的100%),但它們應該儘可能地擠滿而不重疊。
我試圖使自動化鑲嵌的古老藝術,特別是Opus palladianum技術。
我的想法是使用模擬退火或其他啓發法來優化每個不規則馬賽克的位置和旋轉,在每次迭代中交換兩個,試圖最小化反映與目標圖像的相似度的一些能量函數以及「包裝」的瓷磚。 我試圖在Python中實現這一點,任何想法和幫助將不勝感激。
例子:
到目前爲止你有什麼?模擬退火的實現?健身功能? – acdr
[如果您的*模擬退火*實現有問題,請回到關於它的特定問題](https://meta.stackoverflow.com/a/334823/176769)。我相信提出如何解決問題的想法的問題太廣泛而無法回答。但是[去聊天](https://chat.stackoverflow.com/)並且與人們討論它是完全正確的。 – karlphillip
而不是使用「預定義形狀」,它將更容易「剪切」最終圖像(如Voronoi)以創建這些形狀。 – user1767754