स्थानिक संदर्भ में लैंकोज़ रिसैमलिंग क्या उपयोगी है?


46

GDAL में निकटतम पड़ोसी, बिलिनियर, क्यूबिक और स्प्लिन के सामान्य मिश्रण से परे एक पुनरुत्पादन विधि शामिल है: "लैंक्ज़ोस ने विंडो सिनस रेम्पलिंग"। मैं समझता हूं कि इसका एक कनवल्शन फ़िल्टर, लेकिन उन छवियों के विपरीत, जहाँ परिणाम व्यक्तिपरक होते हैं, स्थानिक डेटा के लिए उपयोग की जाने वाली रेज़म्पलिंग के अन्य निहितार्थ हैं। Lanczos क्या है और इसका उपयोग कैसे आउटपुट को प्रभावित करता है?


4
यह stackoverflow.com/questions/1854146/… का एक सटीक डुप्लिकेट है जिसका एक अच्छा उत्तर है।
whuber

क्लाउड ड्यूकॉन द्वारा 1979 के पेपर की धारा 4 मददगार हो सकती है।
whuber

जवाबों:


72

लैंकोज़ो फिर से शुरू करना क्या है?

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

  • ये ऑपरेटर प्रत्येक रंग चैनल में अलग से काम करते हैं। इसलिए यह अध्ययन करने के लिए पर्याप्त है कि वे एक मोनोक्रोमैटिक ("ब्लैक एंड व्हाइट") छवि पर कैसे काम करते हैं।

  • इमेज प्रोसेसिंग में उपयोग किए जाने वाले अधिकांश कनवल्शन ऑपरेटर एक्स और वाई दिशाओं में और स्वतंत्र रूप से दोनों दिशाओं में एक ही तरह से काम करते हैं। वास्तव में, वे वास्तव में एक आयामी ऑपरेटर हैं जो पहले पंक्तियों और फिर स्तंभों पर लागू होते हैं। इसका मतलब है कि हम उन्हें "1 डी" चित्रों का अध्ययन करके पढ़ सकते हैं, जिन्हें विस्तार से प्लॉट किया जा सकता है।

  • सब कुछ इस एक से दूसरे मूल्य से अचानक कूद है: हम एक रेखीय ऑपरेटर (जो सभी घुमाव के ऑपरेटरों भी शामिल है) के बारे में पता करने की जरूरत है कि कैसे एक ऑपरेटर सभी का सबसे सरल गैर निरंतर छवि पर काम करता है से अनुमान लगाया जा सकता है।

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

upsampling

छवियों के रूप में 7 से 80 कोशिकाओं को फिर से खोलना

बाईं ओर 7 मूल 7 छवि वास्तव में एक आयामी है क्योंकि प्रत्येक पंक्ति समान है। स्तंभों के बीच resampling होती है। अन्य पाँच छवियों का आयाम 80 से 80 है, यह दर्शाता है कि प्रत्येक विधि मूल मोटे पिक्सेल के बीच कैसे प्रक्षेपित होती है। निकटतम-पड़ोसी नमूना अंधेरे और प्रकाश के बीच तेज विभाजन को बरकरार रखता है जबकि अन्य चार विधियां कुछ हद तक हस्तक्षेप क्षेत्र को धुंधला करती हैं। विशेष रूप से, लैंक्ज़ोस रेसमलर कुछ ऐसे क्षेत्र बनाता है जो मूल में किसी की तुलना में गहरे होते हैं और अन्य जो मूल में किसी की तुलना में हल्के होते हैं। (यह जीआईएस काम के लिए निहितार्थ हो सकता है, क्योंकि इस तरह के एक एक्सट्रपलेशनमूल मान संभावित रूप से नए मानों को अमान्य कर सकते हैं। वे मूल रंग मानचित्र की सीमा से आगे भी बढ़ सकते हैं, कभी-कभी रेज़म्पलिंग छवि में चरम मान गलत तरीके से प्रस्तुत किए जाते हैं। यह उदाहरण के लिए, आर्कजीआईएस में बाइबिक कॉन्फोल्यूशन रीसम्पलिंग के साथ एक समस्या है।)

(एनबी: यहां दिखाया गया "बाइबिक" विधि एक बाइसिकिक स्पलाइन है, न कि आर्कगिस का "बाइबिक कॉन्फोल्यूशन"।)

छवि मूल्यों को चित्रित करने के लिए हल्कापन का उपयोग करना, हालांकि प्राकृतिक, बहुत सटीक नहीं है। अगला चित्रण स्तंभ (क्षैतिज अक्ष) द्वारा सेल मान (ऊर्ध्वाधर अक्ष) को रेखांकन करके इसे ठीक करता है।

भूखंडों के रूप में 7 से 80 कोशिकाओं को फिर से खोलना

ग्राफ़ पर निम्न मान छवियों के गहरे भागों के अनुरूप हैं। मूल की एक विचारशील परीक्षा एक छिपी हुई धारणा को उजागर करती है: हालांकि मूल छवि अंधेरे से प्रकाश तक तेज कूदने की तरह दिखती है , वास्तव में कूद स्तंभों की सीमा के एक-सातवें (1/7) से अधिक होती है। यह कहना है कि मूल दृश्य में उस अंतराल में वास्तव में क्या होता है जो छवि दर्शा रही है? इसलिए हम इस छोटे अंतराल के भीतर होने वाली रेज़ामापलिंग विधियों के बीच मतभेदों के बारे में बहुत अधिक आलोचनात्मक नहीं होना चाहिए: प्रत्येक एक अलग लेकिन संभावित रूप से समान रूप से वैध प्रतिपादन दे रहा है जो मूल दृश्य में घटित हो सकता है। इस अर्थ में, यह अब स्पष्ट नहीं है कि निकटतम पड़ोसी नमूना सबसे वफादार प्रक्षेप विधि है।

एक निष्कर्ष जो हमें आकर्षित करना चाहिए, वह यह है कि किसी भी अपसंस्कृति विधि की सटीकता अंतर्निहित दृश्य की प्रकृति पर निर्भर करती है । यदि दृश्य में ऐसे मान होते हैं जो सुचारू रूप से एक बिंदु से दूसरे तक भिन्न होना चाहिए, तो निकटतम पड़ोसी विधि उन दिखाए गए लोगों के बीच पुनरुत्थान के कम से कम वफादार तरीके होने की संभावना है।

downsampling

डाउनसम्प्लेटेड चित्र

यहाँ हम एक 16 से 16 इमेज को 8 से 8 इमेज (2 ए 2 एग्रीगेशन) द्वारा डाउनसम्पलिंग का परिणाम देखते हैं। निकटतम पड़ोसी तेज सीमा को सटीक रूप से बनाए रखता है। Lanczos स्पष्ट तीक्ष्णता बढ़ाकर दूसरों से अलग है । एक नज़दीकी नज़र से पता चलता है कि यह सीमा के एक तरफ के अंधेरे क्षेत्र को गहरा कर देता है और दूसरी तरफ के प्रकाश क्षेत्र को हल्का कर देता है। रेखांकन इसे स्पष्ट करते हैं:

उतार-चढ़ाव वाली छवियों के ग्राफ

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

इसका उपयोग करने से आउटपुट कैसे प्रभावित होता है?

आइए एक नज़र डालें कि अधिक जटिल छवि में क्या होता है।

एक जटिल छवि के अवशेष

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

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

जटिल छवि के रेखांकन फिर से दिखे

समान परिणामों के ये रेखांकन बताते हैं कि लैंकोज़ो रेसमलर धारियों में कंट्रास्ट बनाए रखने में सक्षम था (जैसा कि निरंतर चढ़ाव के प्रकाश में तीव्रता की विविधता को प्रस्तुत करने की कीमत पर ऊर्ध्वाधर चढ़ाव से लेकर ऊंचे स्तर तक देखा जाता है)। छवि के बीच का क्षेत्र (पिक्सेल 5, 6, 7 मूल का)। यह भिन्नता छवि के प्रकाश भाग (मध्य) के भीतर धारी जैसी कलाकृतियों को दिखाती है। यहां दिखाए गए प्रतिकारों में से, इस तरह के शानदार विस्तार को पेश करने में यह अकेला है।

यह एक स्थानिक अनुप्रयोग के लिए क्या उपयोगी है?

जाहिर है, लैंसजोस रेज़म्पलिंग, रेज़ोमिंग का रामबाण या ऑम्निबस समाधान नहीं है। यह स्थानीय विपरीत को बनाए रखने (या यहां तक ​​कि बढ़ाने) में कई अन्य दृढ़ संकल्प resamplers से बेहतर है। यह तब उपयोगी हो सकता है जब विस्तृत सुविधाओं या सीमाओं की पहचान देखने के लिए पुनर्निर्मित छवि का इरादा है। जब फिर से आकार की छवि का विश्लेषण किया जाएगा या संसाधित किया जाएगा, लैंक्ज़ोस फिर से शुरू करने से किनारों और रैखिक सुविधाओं का पता लगाने की क्षमता बढ़ सकती है।

जब पुनर्निर्मित छवि का अन्य तरीकों से विश्लेषण किया जाएगा, हालांकि, लैंक्ज़ोस रीसम्पलिंग के लाभ संदिग्ध हैं। यह आमतौर पर (कृत्रिम रूप से) स्थानिक परिवर्तनशीलता के स्थानीय उपायों को बढ़ाएगा, जैसे कि फोकल पर्वतमाला और फोकल मानक विचलन। यह पूरे पर स्थानिक साधनों को प्रभावित नहीं करेगा - अन्य दृढ़ संकल्प resamplers की तरह, यह आमतौर पर सामान्यीकृत होता है (जिसका अर्थ है कि यह एक स्थानीय भारित औसत है, जिसमें कोई पूर्वाग्रह नहीं है) - लेकिन यह कुछ स्थानीय औसत को बढ़ा सकता है और दूसरों की तुलना में कम कर सकता है अन्य resamplers।

यहां (आवश्यक रूप से संक्षिप्त) मूल्यांकन से पता चलता है कि लैंकोसो रेसमप्लर का उपयोग आम तौर पर डाउनसम्पलिंग के लिए नहीं किया जाना चाहिए: उस एप्लिकेशन के लिए, यह कुछ भी नहीं पेश करता प्रतीत होता है कि सरल (और अधिक सामान्यतः उपलब्ध) विधियां हैं, जो मूल सीमा से परे एक्सट्रपलेशन के संभावित नुकसान को बरकरार रखती हैं। डेटा मूल्यों की।

आफ्टरवर्ड: एक सामान्य टिप्पणी

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

जीआईएस कैसे काम करता है, यह जानने के लिए इस दृष्टिकोण के तीन महत्वपूर्ण पहलू हैं:

  1. सिद्धांत । प्रयोग आमतौर पर "अंधा" नहीं किया जा सकता है: यह कुछ सिद्धांत को जानने में मदद करता है। हम आम तौर पर ज्यादा जानने की जरूरत नहीं है, लेकिन हम मूल बातें की जरूरत है। इस मामले में, दृढ़ संकल्प के सिद्धांत ने उन छवियों की संख्या और प्रकारों को बहुत कम कर दिया जिन्हें हमें प्रयोग करने की आवश्यकता है। हमें फूरियर विश्लेषण आदि के बारे में कुछ भी जानने की आवश्यकता नहीं थी (कोई गलती न करें, ऐसा ज्ञान फायदेमंद है। लेकिन इस तरह के विशेष ज्ञान की कमी हमें नहीं रोकनी चाहिए।)
  2. अभ्यास करें । हमारे जीआईएस का उपयोग करने के लिए स्वयं प्रयोग करके, हम यह देखने में सक्षम हैं कि यह वास्तव में क्या करता है । यह सिद्धांत (जो हमें बताता है कि सॉफ्टवेयर को क्या करना चाहिए ) और अभ्यास के बीच के डिस्कनेक्ट से बचा जाता है (जो वास्तव में ऐसा करता है)।
  3. मात्रा का ठहराव । जब तक प्रश्न दृश्य धारणा की चिंता नहीं करता है, तब तक परिणामों का मूल्यांकन करने के लिए हमें केवल नक्शे को देखने पर निर्भर नहीं होना चाहिए (या, इस मामले में, चित्र)। सबसे अच्छी जानकारी प्राप्त करने के लिए, हमें आउटपुट (यहां ग्राफ़ के साथ किया गया) को निर्धारित करना होगा और, अक्सर, सांख्यिकीय विधियों के साथ इसका वर्णन और सारांश करना होगा।

3

आप अपने इमेज प्रोग्राम्स से लैंकोज़ फ़िल्टर या इसी प्रकार के फ़िल्टर जान सकते हैं, जहाँ उन्हें अक्सर 'शार्पनिंग फिल्टर' कहा जाता है। इस मंचीय से एक अच्छा उदाहरण : पहली छवि मूल फ़ाइल को दिखाती है, और इसके बगल में ग्रिड आकार को कम करने के बाद कैसा लगेगा यदि आप एक चिकनी प्रक्षेप विधि (जैसे बाइबिक डाउनसमलिंग) का उपयोग करते हैं।

http://peltarion.eu/img/comp/moire/D_lanczos3.jpg हालाँकि, यदि आप इस छवि पर लैंकोज़ फ़िल्टर लागू करते हैं, या इसे फिर से शुरू करने के लिए उपयोग करते हैं, तो मतभेद बढ़े हुए हैं, आप कह सकते हैं कि इसके विपरीत स्थानीय रूप से वृद्धि हुई है। यहाँ छवि विवरण दर्ज करें

स्थानिक डेटा के मामले में यह बहुत उपयोगी हो सकता है: कल्पना करें कि आप एक ग्रिड वाले बहुभुज मानचित्र को कम करने की कोशिश कर रहे हैं, या यदि आप एल्गोरिदम चलाना चाहते हैं जो कि किनारे का पता लगाने पर भरोसा करते हैं (उदाहरण के लिए स्कैन किए गए बहुभुज मानचित्र, छवि विभाजन ( उदाहरण )।

दूसरी ओर, आप कुछ स्थानिक सटीकता को ढीला करते हैं। कल्पना कीजिए कि 16x16 का नक्शा किसी शहर में वायु प्रदूषण का प्रतिनिधित्व करता है, फिर से उपयोग करने की तुलना में जो उस ग्रिड सेल के भीतर औसत वायु प्रदूषण का पर्याप्त रूप से प्रतिनिधित्व करता है।


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

मैंने आपकी टिप्पणियाँ एकीकृत कर दी हैं। लेकिन सेल के भीतर , चिकना प्रक्षेप सबसे बेहतर संभावना पैदा करेगा
johanvdw

-1

से विकिपीडिया :

लैंक्ज़ोस रिसमलिंग (हंगेरियन उच्चारण: [ːlatsntso)]) एक प्रक्षेप विधि है जिसका उपयोग नमूना डेटा के लिए नए मूल्यों की गणना करने के लिए किया जाता है। इसका उपयोग बहुभिन्नरूपी प्रक्षेप में किया जाता है, उदाहरण के लिए छवि स्केलिंग (डिजिटल छवियों का आकार बदलने के लिए), लेकिन किसी अन्य डिजिटल सिग्नल के लिए इसका उपयोग किया जा सकता है। Lanczos कर्नेल इंगित करता है कि मूल डेटा में कौन से नमूने हैं, और किस अनुपात में अंतिम डेटा का प्रत्येक नमूना बनाते हैं। फ़िल्टर का नाम कॉर्नेलियस लैंज़ोस के नाम पर रखा गया है, क्योंकि उन्होंने दिखाया कि विभिन्न समस्याओं के लिए फूरियर श्रृंखला और चेबीशेव पॉलिनॉमिअल्स का उपयोग कैसे किया जाता है, जहां पहले इसका उपयोग नहीं किया गया था।

अनुप्रयोग : लैंक्ज़ोस फ़िल्टर सिंस फ़िल्टर का एक विंडो रूप है, एक सैद्धांतिक रूप से इष्टतम "ईंट-दीवार" कम-पास फिल्टर है। Sinc फंक्शन हद तक अनंत है, और इस तरह सीधे व्यवहार में उपयोग करने योग्य नहीं है। इसके बजाय, कोई एक सन्निकटन का उपयोग करता है, जिसे फ़िल्टर के विंडो किए गए रूप कहा जाता है, जैसा कि विंडो फ़ंक्शंस में चर्चा की जाती है: फ़िल्टर डिज़ाइन, और लैंकोज़ फ़िल्टर एक ऐसी विंडोिंग है। विंडोज़ एक सीमा के बाहर गायब हो जाती हैं, और बड़ी रेंज का उपयोग करने से व्यक्ति अधिक संगणना के बदले सटीकता में सुधार कर सकता है।

मूल्यांकन : लैंक्ज़ोस फिल्टर की तुलना अन्य फिल्टर, विशेष रूप से साइनस फिल्टर की अन्य विंडोिंग के साथ की गई है। कुछ लोगों ने लंकज़ोस को (a = 2 के साथ) अलंकृत, तीक्ष्णता और कम से कम बजने की कमी के मामले में सबसे अच्छा समझौता ", छंटनी की गई सिनसिटी और बार्लेट, कोसाइन और हेंगेड सिंस के साथ तुलना की है।

सीमा : क्योंकि कर्नेल a> 1 के लिए नकारात्मक मान लेता है, गैर-नकारात्मक इनपुट के साथ भी आउटपुट मान नकारात्मक हो सकता है। नकारात्मक संकेत छवि संकेतों के लिए सीमा से बाहर हैं और कतरन कलाकृतियों का कारण है। नकारात्मक लोब भी बजती कलाकृतियों को प्रेरित करते हैं।

हालाँकि, विंडो न होने के कारण (नॉन-विंडो) सिंस फिल्टर की तुलना में अंडरशूट और रिंगिंग दोनों कम हो जाते हैं; रिंगिंग विशेष रूप से छोटा है, क्योंकि सकारात्मक पक्ष पालि आकार दर्शाता है, विशेष रूप से एक = 2 ​​के लिए।


वोट डाउन क्यों? इस उत्तर में क्या गलत है? मैंने मूल लिंक भी दिया है।
चेतन एस।

7
मैं यह नहीं देखता कि विकी एक्सट्रैक्शन के सवाल का जवाब कैसे देता है कि लैंक्ज़ोस फ़िल्टर का स्थानिक डेटा पर क्या प्रभाव पड़ता है और इसके लिए क्या उपयोगी होगा।
UnderDark

यह सच है। मैंने व्हाट्स लैंज़ोस के
चेतन एस।

9
इस विकिपीडिया का अधिकांश लेख सहायक होने के लिए बहुत अस्पष्ट है (जैसा कि अन्य ने पहले उल्लेख किया है)। इसका उत्तर वास्तव में बहुत अंतिम वाक्य में है, लेकिन केवल वही व्यक्ति समझ सकता है जो यह जानता है कि "अंडरशूट" और "रिंगिंग" क्या है (उर्फ 2 डी में "गिब्स दोलन"), जानता है कि "सकारात्मक पक्ष" द्वारा क्या संदर्भित किया जा रहा है। लोब, "और कर्नेल आकृतियों के बीच संबंधों और फूरियर रूपांतरण पर उनके प्रभावों को गहराई से समझता है। संक्षेप में, समझदार और उपयोगी होने के लिए इस उत्तर को कुछ प्रवर्धन की आवश्यकता है।
whuber
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.