2017-06-18 16 views
7

छवि मोज़ेक एक बड़ी छवि (उदाहरण here) बनाने के लिए पूर्वनिर्धारित वर्ग छवियों का एक सेट का उपयोग करें। बहुत सारे समाधान हैं और इस प्रभाव को प्राप्त करने के लिए यह काफी छोटा है। हालांकि, यह निम्नलिखित बाधाओं के साथ बहुत कठिन हो जाता है:पायथन फोटो मोज़ेक अमूर्त आकार के मोज़ेक के साथ

  1. मूल मोज़ेक का आकार सार है। कोई उत्तल बहुभुज कर सकता है।
  2. प्रत्येक मोज़ेक केवल एक बार उपयोग किया जा सकता है।
  3. मोज़ेक को पूरी तरह से पैक करने की आवश्यकता नहीं है (यानी 100% कैनवास पर कब्जा कर रहा है), लेकिन उन्हें ओवरलैपिंग के बिना जितना संभव हो उतना पैक किया जाना चाहिए।

मैं tesselation की प्राचीन कला, विशेष रूप से Opus palladianum तकनीक automatize कोशिश कर रहा हूँ।

मेरा विचार प्रत्येक अनियमित मोज़ेक की स्थिति और घूर्णन को अनुकूलित करने के लिए नकली एनीलिंग या कुछ अन्य ह्युरिस्टिक का उपयोग करना है, प्रत्येक पुनरावृत्ति में दो को स्वैप करना, कुछ ऊर्जा कार्य को कम करने की कोशिश करना जो लक्ष्य छवि के समानता को दर्शाता है "पैकिंग" टाइल्स के। मैं इसे पायथन में प्राप्त करने की कोशिश कर रहा हूं, किसी भी विचार और सहायता की सराहना की जाएगी।

उदाहरण:

enter image description here

+2

अब तक आपके पास क्या है? अनुरूपित एनीलिंग का कार्यान्वयन? एक फिटनेस समारोह? – acdr

+2

[यदि आपको अपने * अनुरूपित एनीलिंग * कार्यान्वयन में कोई समस्या है, तो इसके बारे में एक विशिष्ट प्रश्न के साथ वापस आएं] (https://meta.stackoverflow.com/a/334823/176769)। मेरा मानना ​​है कि किसी समस्या को हल करने के तरीकों के लिए मछली पकड़ने के प्रश्नों का उत्तर देने के लिए बहुत व्यापक हैं। लेकिन यह [चैट] [https://chat.stackoverflow.com/) पर पूरी तरह ठीक है और इसके बारे में लोगों से बात करें। – karlphillip

+0

"पूर्वनिर्धारित आकार" का उपयोग करने के बजाय यह उन आकृतियों को बनाने के लिए अंतिम छवि (जैसे वोरोनोई) "काटने" के लिए बहुत आसान होगा। – user1767754

उत्तर

3

मैं उम्मीद करते हैं कि आप शायद एक "गैर-अतिव्यापी" बाधा के साथ जीए (आनुवंशिक एल्गोरिथ्म) का उपयोग कर सकते यह काम करने के लिए।

व्यक्ति (प्रत्येक उत्तल बहुभुज) के लिए

पैरामीटर हैं: (? आकार)

  • प्रारंभिक स्थिति
  • रोटेशन

और अपने फिट समारोह सबसे अच्छा टिप्पणी देने के लिए निर्माण किया जाएगा प्रत्येक व्यक्ति के लिए जब बहुभुज ओवरलैपिंग नहीं होता है (और अन्य व्यक्ति के करीब)

वाई कहां उदाहरण के लिए यह video और this one देख सकता है।

सम्मान

+0

जोड़ें: अपने अंतिम मोज़ेक को लिखने के लिए कितने उत्तल बहुभुज का उपयोग किया जाएगा, आप स्थिति के रूप में स्थिति (और रोटेशन) क्रूर-फोर्सिंग, या मॉरिस स्क्रीनिंग टेस्ट का मूल्यांकन भी कर सकते हैं, लेकिन शायद जेनेटिक एल्गोरिदम सर्वोत्तम है। –

+0

प्रारंभिकरण के बारे में क्या? क्या मुझे यादृच्छिक रूप से टाइल्स रखना चाहिए? यहाँ उत्परिवर्तन क्या है? दो टाइल्स स्वैपिंग, या किसी की स्थिति/रोटेशन बदलना? इसके अलावा, यह पैकिंग मुद्दे से निपटता नहीं है: पैकिंग में मूल्य वृद्धि के लिए एक तरीका होना चाहिए। – Anoyz

संबंधित मुद्दे