रस्टर नॉइज़ रिडक्शन और एज स्मूथिंग?


22

मैं इस तरह एक रेखापुंज छवि हैरेखापुंज छवि

मैं अलग-थलग शोर बिंदु को हटाना चाहता हूं और किनारे को चिकना करना चाहता हूं (सफेद एकल बिंदुओं को कहते हैं, और मैं चाहता हूं कि इकाई के किनारे चिकनी दिखें)। मैं आर्कगिस या आर में यह कैसे कर सकता हूं?

सेल का आकार 30 * 30 है।

जवाबों:


15

इस तरह के प्रसंस्करण के लिए रूपात्मक संचालन का विस्तार और हटना बनाया गया था। ArcGIS (या GRASS या गणितज्ञ ) का उपयोग करें क्योंकि R's "रेखापुंज" पुस्तकालय बहुत धीमा है।


अक्सर यह मापदंडों के साथ थोड़ा प्रयोग करने में मदद करता है: आपको यह तय करना होगा कि एक छवि को साफ करने के लिए कितना विस्तार और सिकुड़ना आवश्यक है; और आमतौर पर आप जितना संभव हो उतना कम करना चाहते हैं, क्योंकि प्रत्येक ऑपरेशन कुछ तेज विवरणों को सुचारू करने के लिए होता है। यहां एक अनुक्रम है जो "संस्थाओं" में अधिकांश विवरणों को बनाए रखते हुए स्पष्ट "शोर" को खत्म करने के लिए अच्छी तरह से काम करता है। "विस्तार" और "सिकुड़ना" दोनों सफेद कोशिकाओं के संदर्भ में हैं, जिससे कि उनका विस्तार बाहर की ओर बढ़ता है और सिकुड़ने से काली कोशिकाओं का सफेद क्षेत्रों में अतिक्रमण होता है।

छवियों की तालिका

"अंतर" कॉलम प्रत्येक चरण में प्रारंभ और अंत छवि के बीच अंतर को उजागर करने के लिए रंग का उपयोग करता है: काले रंग के लिए नीला, जो सफेद हो गया और सफेद के लिए नारंगी जो काला हो गया।

यदि शेष बचे हुए टुकड़ों को हटाने की आवश्यकता है, तो उन्हें पहचानने के लिए रीजनलग्रुप के साथ सबसे अच्छा किया जा सकता है , जिसके बाद उन्हें पुनर्वर्गीकरण के माध्यम से हटाया जा सकता है। यह शुरुआत में एक विकल्प था, लेकिन काम के साथ थोड़ी प्रारंभिक सफाई Expandऔर Shrinkकाम को कम कर देता है और वांछित चौरसाई प्रदान करता है।


संयोग से, मैंने इस चित्र में आठ चित्रों को बनाने के लिए चुना है, जो गणितज्ञों के आदेशों के साथ हैं क्योंकि वे बहुत सरल, आसान और निष्पादित करने के लिए तेज़ हैं:

i = Import["http://i.stack.imgur.com/umDg7.png"];
l = Dilation[k = Erosion[j = Dilation[i, 2], 3], 1];      (* This does all the work *)
delta = ColorCombine /@ {{i, j}, {j, k}, {k, l}, {i, l}}; (* Compares images *)

आर्कजीआईएस में वर्कफ़्लो समान है लेकिन सिंटैक्स लंबा होगा। यदि आप वास्तव में उपयोग करना चाहते हैं R, तो "रैस्टर" लाइब्रेरी को लोड करें और focalFilterविस्तार और सिकुड़ने के लिए फ़ंक्शन बनाने के लिए शोषण करें। फिर ऑपरेशन को अंजाम देने के लिए प्रत्येक मिनट के बारे में प्रतीक्षा करें ...।


हैलो! यदि आपको कोई आपत्ति नहीं है, तो क्या आप मुझे अपनी संपर्क जानकारी भेज सकते हैं? मैं आपको अपने शोध में स्वीकार करना चाहूंगा। धन्यवाद! @ वाउचर
सीन

क्या आप GRASS में समतुल्य कमांड जानते हैं?
रिचर्ड

1
@ रिचर्ड मुझे यकीन है कि इन ऑपरेशनों को करने के लिए बहुत सारे रचनात्मक तरीके हैं, लेकिन r.neighbors कार्य के लिए अच्छी तरह से अनुकूल हैं।
whuber

12

स्थानिक विश्लेषक एक्सटेंशन का उपयोग करके, आप कुछ सामान्यीकरण टूल का उपयोग कर सकते हैं । उनमें से कुछ समान कार्य करते हैं, इसलिए आपको परिणाम प्राप्त करने के लिए कुछ के साथ खेलने की आवश्यकता हो सकती है कि आप उन्हें कैसे चाहते हैं। लेकिन, मुझे मेजॉरिटी फिल्टर टूल और बाउंड्री क्लीन टूल पर एक नजर होगी ।

यहाँ इन दो उपकरणों की अवधारणाओं पर एक पृष्ठ है

मुझे यकीन नहीं है कि आर में इन कार्यों को कैसे किया जाए, लेकिन यहां एक पोस्ट है कि कैसे GRASS GIS का उपयोग करते हुए एक मेजरिटी फ़िल्टर का प्रदर्शन किया जाए।


2

यह मूल रूप से @ व्हिबर के उत्तर का एक प्रकार है और यूक्लिडियन दूरी का उपयोग करता है ताकि रेखापुंज के तीखे कोनों को सुचारू करने के लिए रास्टर सीमाओं का विस्तार और सिकुड़ सकें जो कि विस्तार-सिकुड़न प्रक्रिया द्वारा अतिरंजित होता है जो कोशिकाओं की संख्या का उपयोग करके अतिक्रमण करता है। हालांकि यूक्लिडियन डिस्टेंस का विस्तार होता है, अतिक्रमण / सिकुड़न के लिए नकारात्मक मूल्य का परिचय देना संभव नहीं है। यूक्लिडियन डिस्टेंस रैस्टर के नेगेटिव को लेने और उसे ग्रो करने के लिए ट्रिक एक पुनरावृत्ति प्रक्रिया विकसित करना है। नीचे दिए गए नमूना इमेजरी और स्पष्टीकरण के लिए स्नैपशॉट के चरण हैं।

  1. केवल 1s (श्वेत कोशिकाओं) रखने के लिए रेखापुंज रेखापुंज

  2. दो सेल की दूरी (इस मामले में 60 मीटर) के लिए यूक्लिडियन दूरी को पुनर्वर्गीकृत रेखापुंज पर लागू करें

  3. Reclassify का उपयोग करके विस्तारित रेखापुंज का ऋणात्मक लें (मान के साथ कोशिकाओं को NODATA मिलेगा और NODATA 1 हो जाएगा) या रेखापुंज कैलकुलेटर के कोन और इसनॉल ऑपरेटर

  4. इस नकारात्मक रेखापुंज के लिए यूक्लिडियन दूरी को एक बार फिर से लागू करें (60 मीटर)

  5. ऊपर दी गई समान प्रक्रिया का पालन करके इसका नकारात्मक लें

  6. रेखापुंज कैलकुलेटर का उपयोग करें या नमूना रेखापुंज के मूल मूल्यों पर वापस जाने के लिए इस रेखापुंज में 0 में NODATA कोशिकाओं को असाइन करने के लिए पुनरावर्तित करें

विस्तारित सिकुड़न बनाम यूक्लिडियन दूरी

विस्तार और सिकुड़नायूक्लिडियन दूरी

नोट: ग्रीन प्रसंस्कृत कोशिकाओं (सवालों में सफेद कोशिकाओं) से पता चलता है

यूक्लिडियन डिस्टेंस का लाभ यह है कि, यह प्रत्येक कोशिका से हाइपेन्यूज एक्सटेंट के माध्यम से उचित दूरी तय करता है, जो अन्यथा तेज किनारों को चिकना करता है। दूसरी ओर, विस्तार और सिकुड़ने वाले उपकरणों के सेल पैरामीटर की संख्या, सभी दिशाओं के लिए समान कोशिकाओं की प्रक्रिया करती है, जो किनारों की तरह बाउंडिंग बॉक्स की पैदावार करती है, इसलिए किनारों / कोनों को सामान्य रूप से बढ़ाती है।

मुख्य मुद्दा, हालांकि, यह शोर को सफलतापूर्वक विस्तार / सिकुड़न के रूप में नहीं हटाता है और यह उत्तर की तुलना में थोड़ा लंबा है।


ऐसा करने और GRASS / QGIS का उपयोग करने वाले किसी के लिए - आप r.grow का उपयोग कर सकते हैं और एक सकारात्मक यूक्लिडियन दूरी से बढ़ सकते हैं, इसके बाद एक नकारात्मक यूक्लिडियन दूरी
srha
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.