2011-01-10 15 views
5

नमस्ते,का पता लगा रहा मनमाना आकार

हम अंक जो एक 3 डी शरीर और एक क्षैतिज विमान के एक चौराहे का प्रतिनिधित्व का एक सेट है। हम 2 डी आकारों का पता लगाना चाहते हैं जो शरीर के पार अनुभागों का प्रतिनिधित्व करते हैं। एक या अधिक ऐसे आकार हो सकते हैं। हमें लेख मिले जो चर्चा करते हैं कि हौफ ट्रांसफॉर्म का उपयोग करके छवियों पर कैसे काम करना है, लेकिन हमारे पास ऐसे हजारों अंक हो सकते हैं, इसलिए एक छवि में कनवर्ट करना बहुत अपमानजनक है। क्या ऐसा करने का कोई आसान तरीका है?

आप

+0

क्या आप किसी भी प्रकार के 3 डी-आकार के बारे में बात कर रहे हैं, या क्या कुछ एप्लिकेशन या डोमेन विशिष्ट बाधाएं हैं? –

+0

तो आप 2 डी बहुभुज पर पैटर्न पहचान चाहते हैं? – ltjax

+0

@ एंड्रे, हैलो, मैं किसी भी * 2 डी * आकार के बारे में बात कर रहा हूं। चूंकि 3 डी शरीर को पेड़ की शाखा की तरह आकार दिया जाता है, यह शायद एक अंडाकार – Ojala

उत्तर

5

धन्यवाद अंक का एक सेट करने के लिए अपने 3 डी मॉडल को परिवर्तित करने के लिए, आपको चौराहे आकार को खोजने के लिए आवश्यक जानकारी फेंक दिया है। क्रम में किनारे-विमान चौराहे बिंदु खोजने के लिए अपने 3 डी मॉडल के किनारे के चेहरे कनेक्टिविटी ग्राफ को चलो। बढ़त सूची के माध्यम से

  1. दोहराएं जब तक आप एक है कि काटती है लगता है:

    आप यह मानते हुए है, या निर्माण कर सकते हैं, 3 डी मॉडल स्थलाकृति (कोने में से कुछ नंबर, किनारों से बंधे कोने, चेहरे के बीच किनारों) परीक्षण विमान, यह एक सूची

  2. में जोड़ने के चेहरे कि अगले चौराहे खोजने के लिए है कि चेहरे के अन्य किनारों के माध्यम से इस बढ़त
  3. दोहराएं हिस्सा में से एक उठाओ, अन्य चेहरे के लिए सूची में जोड़ने के
  4. दोहराएँ जो उस किनारे को तब तक साझा करता है जब तक कि आप वापस न आएं शुरू करने बढ़त

टी आप किनारों है कि विमान एक दूसरे को काटना के एक आदेश दिया सूची का निर्माण किया है - यह तुच्छ है रैखिक, प्रत्येक किनारे चौराहे अंक खोजने के लिए अंतर्वेशन करने के लिए, कि फार्म चौराहे आकार। ध्यान दें कि यह प्रक्रिया मानती है कि चेहरा बहुभुज उत्तल हैं, जो आपके मामले में हैं। यदि आपकी मात्रा अवतल है तो आपके पास एकाधिक असतत चौराहे के आकार होंगे, और इसलिए आपको इस प्रक्रिया को दोहराने की आवश्यकता है जब तक कि सभी किनारों की जांच नहीं की जाती।

कुछ जावा कोड है जो यह here करता है, और एक निफ्टी परीक्षण अनुप्रयोग here करता है।

नियंत्रण:

  • 1-5 परीक्षण मात्रा बदलने के लिए
  • क्ष और w क्वेरी विमानों
  • एक, एस, और घ की संख्या को बदलने के लिए क्वेरी की गति स्कैन को बदलने के लिए विमानों
  • बाएँ क्लिक करें खींचें दृश्य घुमाने के लिए
  • राइट क्लिक करें खींचें क्वेरी विमानों को घुमाने के लिए
0

स्वीकृत उत्तर से एल्गोरिदम/कोड जटिल विशेष मामलों के लिए काम नहीं करता है, जब विमान अवतल सतह के कुछ शीर्षकों को छेड़छाड़ करता है। इस मामले में "चलने" किनारे के चेहरे कनेक्टिविटी ग्राफ लालच से पहले कुछ बहुभुज बंद कर सकता है।

क्या होता है, क्योंकि विमान एक चरम पर छेड़छाड़ करता है, एक बिंदु पर जब ग्राफ चलते हैं तो अगले किनारे के लिए दो संभावनाएं होती हैं, और इससे कोई फर्क नहीं पड़ता कि कौन सा चुना जाता है।

एक संभावित समाधान ग्राफ़ ट्रैवर्सल एल्गोरिदम (उदाहरण के लिए गहराई-पहली खोज) को लागू करना है, और सबसे लंबा लूप चुनें जिसमें शुरुआती किनारे शामिल हैं।