matlab - How to smoothen a jagged border of an image into a straight line? -


मेरे पास इस तरह की छवि है (थ्रेसहोल्डिंग, शोर हटाने, आदि।):

मूल छवि

मेरा अंतिम आउटपुट बिना किसी दांतेदार किनारों के एक चित्र होना चाहिए, और इससे छोटा दी गई छवि इस से, मेरा मतलब है कि 2 छवियों के बीच का एकमात्र अंतर होना चाहिए कि नए में, दांतेदार किनारों को हटाया जाना होना चाहिए, और दांतेदार किनारों भर में । इसी तरह (अंतिम छवि को लाल सीमा के भीतर होना चाहिए, लाल बॉर्डर केवल स्पष्टीकरण के लिए दिखाया गया है):

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

ध्यान दें कि मैं ऐसा भाषा चाहता हूँ जिसमें MATLAB है।

2 प्राथमिक उद्देश्य यह है:

  1. होग ट्रांससेट्स का उपयोग करके किनारों को स्वयं प्राप्त करने के लिए
  2. जिससे कि 'एक्स्ट्रामा' संपत्ति वांछित पिनट देता है, जैसे कि क्षेत्रप्रोपों का उपयोग करते हुए, जैसे: < / Li>

यहां छवि विवरण दर्ज करें

सवाल, एक अधिक संक्षिप्त रूप में:

  1. मैं MATLAB में इस टी को निकालने के बारे में कैसे जाना होगा, जैसे कि यह बीहड़ किनारों पर नहीं है, लेकिन कुल आंकड़ा n है ओ.टी. मूल से बड़ा है, जैसा कि ऊपर की दूसरी आकृति में दिखाया गया है? दूसरे शब्दों में, किस तरह के परिवर्तनों (MATLAB) में मैं छवि की सीमाओं को कम करने के लिए उपयोग करूँगा जितना संभव हो उतना कम से कम क्षेत्रफल के रूप में (लेकिन कोई क्षेत्र जोड़ा नहीं गया) जैसे कि कड़वाहट गायब हो जाता है?
  2. क्या चरण 1 के माध्यम से जाने की आवश्यकता के बिना ऊपर की संख्या 2 में दिखाए गए कोने (एक्स्ट्रामा) अंक निकालने का कोई और अधिक कारगर तरीका है?

संपादित करें: कुछ और नमूना छवियां:

NB: विचाराधीन सभी छवियां लगभग लगभग 90 से एक दूसरे के आयताकारों से बनी रहेंगी, और कोई अन्य आंकड़ा नहीं। उदाहरण के लिए, घुमावदार किनारे वाली एक छवि को छूने के लिए, इस प्रश्न के उत्तर (या यहां तक ​​कि उस मामले के लिए, एक ट्रेपेज़ियम) से परे होगा, हालांकि मुझे लगता है कि 2 सीधे किनारों को छूने से समान होना चाहिए, भले ही वह चाहे किनारे का एक और समानांतर है या नहीं)।

संदर्भ के लिए यहां कुछ और छवियां दी गई हैं:

मुझे यकीन नहीं है कि मेरा जवाब आपकी आवश्यकताओं को पूरा करेगा। मैं इसे यहाँ डाल रहा हूं क्योंकि मुझे लगता है कि यह टिप्पणी के लिए बहुत लंबा है।

  • क्योंकि आप चाहते हैं कि अंतिम आउटपुट इनपुट छवि से छोटा हो, इनपुट छवि को मिटा दें आप उपयुक्त कर्नेल आकार चुन सकते हैं।
  • इस मिट गई छवि पर एक कोने का पता लगाने के लिए। यह आपको सभी मजबूत कोनों देगा, लेकिन बिना किसी आदेश के
  • मिटाए गए छवि की सीमाओं का पता लगा लें यह आपको सीमा पिक्सल की एक आदेश सूची देनी चाहिए
  • अब, इन आदेशित सीमा बिंदुओं की सहायता से आप उन कोनों की ऑर्डर कर सकते हैं जो आपने पहले पाया
  • फिल्टर कोने के बिंदु जो लगभग 90 कोण की डिग्री आप प्रत्येक 3 आज्ञाकारी कोने के अंक (दो हरे रंग के अंक और नीचे दिए गए चित्र के बीच के बीच में लाल बिंदु) पर विचार करने पर यह कर सकते हैं। यह केवल उदाहरण के लिए है, न कि कोने के बिंदु जो मैंने गिना था। इस ऑपरेशन के अंत में, आपके पास सभी लाल बिंदु हैं
  • अब आप या तो लगातार दो लाल बिंदुओं को जोड़ने वाली रेखा का समीकरण पा सकते हैं
<

  • चूंकि आपने एक छोटी छवि पर यह सब प्रसंस्करण किया है जो कि मूल छवि से मूल रूप से छोटा है, आपको एक छोटा आकार मिलना चाहिए


    Comments

    Popular posts from this blog

    java - Can't add JTree to JPanel of a JInternalFrame -

    asp.net mvc - How to attach sql database to a javascript graph -

    c# - How to know the number of Threads created and limit the Tasks accordingly -