मीडियन फ़िल्टर: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{short description|Non-linear digital filtering technique to remove noise}} | {{short description|Non-linear digital filtering technique to remove noise}} | ||
[[Image:Median filter example.jpg|thumb|right|200px|एक ही | [[Image:Median filter example.jpg|thumb|right|200px|एक ही शोरध्वनि वाले फोटोग्राफ पर अलग-अलग त्रिज्या के 3 मीडियन फिल्टर का उदाहरण।]]'''मीडियन फ़िल्टर''' एक गैर-रेखीय [[डिजिटल फिल्टर]] विधि है, जिसका उपयोग अधिकांश किसी छवि या [[संकेत शोर|संकेत शोरध्वनि]] सिग्नल शोरध्वनि को दूर करने के लिए किया जाता है। इस प्रकार के [[शोर में कमी|शोरध्वनि में कमी]] बाद के प्रसंस्करण के परिणामों को उत्तम बनाने के लिए एक विशिष्ट पूर्व-प्रसंस्करण (उदाहरण के लिए, एक छवि पर [[किनारे का पता लगाना]]) कदम है। मिडियन फ़िल्टरिंग का डिजिटल [[ मूर्ति प्रोद्योगिकी |छवि प्रोसेसिंग]] में बहुत व्यापक रूप से उपयोग किया जाता है, क्योंकि कुछ शर्तों के अनुसार, यह शोरध्वनि को दूर करते हुए किनारों को संरक्षित (लेकिन नीचे की चर्चा देखें) करता है, [[ संकेत आगे बढ़ाना | सिग्नल प्रोसेसिंग]] में भी इसका उपयोग होता है। | ||
== एल्गोरिथम विवरण == | == एल्गोरिथम विवरण == | ||
Line 22: | Line 22: | ||
उपरोक्त उदाहरण में, क्योंकि पहले मान से पहले कोई प्रविष्टि नहीं है, पहला मान दोहराया जाता है, जैसा कि अंतिम मान के साथ, विंडो को भरने के लिए पर्याप्त प्रविष्टियाँ प्राप्त करने के लिए। यह सिग्नल की सीमाओं पर लापता विंडो प्रविष्टियों को संभालने का एक तरीका है, लेकिन ऐसी अन्य योजनाएँ हैं जिनमें अलग-अलग गुण हैं जिन्हें विशेष परिस्थितियों में पसंद किया जा सकता है: | उपरोक्त उदाहरण में, क्योंकि पहले मान से पहले कोई प्रविष्टि नहीं है, पहला मान दोहराया जाता है, जैसा कि अंतिम मान के साथ, विंडो को भरने के लिए पर्याप्त प्रविष्टियाँ प्राप्त करने के लिए। यह सिग्नल की सीमाओं पर लापता विंडो प्रविष्टियों को संभालने का एक तरीका है, लेकिन ऐसी अन्य योजनाएँ हैं जिनमें अलग-अलग गुण हैं जिन्हें विशेष परिस्थितियों में पसंद किया जा सकता है: | ||
* बाद में सिग्नल या | * बाद में सिग्नल या छवि बाउंड्री को क्रॉप करके या उसके बिना, बाउंड्री को प्रोसेस करने से बचें, | ||
* सिग्नल में अन्य स्थानों से प्रविष्टियां प्राप्त करना। उदाहरण के लिए छवियों के साथ, दूर क्षैतिज या लंबवत सीमा से प्रविष्टियों का चयन किया जा सकता है, | * सिग्नल में अन्य स्थानों से प्रविष्टियां प्राप्त करना। उदाहरण के लिए छवियों के साथ, दूर क्षैतिज या लंबवत सीमा से प्रविष्टियों का चयन किया जा सकता है, | ||
* खिड़की को सीमाओं के पास सिकोड़ना, ताकि हर खिड़की भरी रहे। | * खिड़की को सीमाओं के पास सिकोड़ना, ताकि हर खिड़की भरी रहे। | ||
Line 47: | Line 47: | ||
* गैर प्रसंस्करण सीमाओं के दृष्टिकोण को अपनाता है (सीमा मुद्दों के बारे में ऊपर की चर्चा देखें)। | * गैर प्रसंस्करण सीमाओं के दृष्टिकोण को अपनाता है (सीमा मुद्दों के बारे में ऊपर की चर्चा देखें)। | ||
[[Image:Medianfilterp.png|thumb|[[दोषपूर्ण पिक्सेल]] द्वारा गंभीर रूप से दूषित छवि को | [[Image:Medianfilterp.png|thumb|[[दोषपूर्ण पिक्सेल]] द्वारा गंभीर रूप से दूषित छवि को उत्तम बनाने के लिए मीडियन फ़िल्टर का उपयोग]] | ||
== एल्गोरिथम कार्यान्वयन मुद्दे == | == एल्गोरिथम कार्यान्वयन मुद्दे == | ||
आमतौर पर, अब तक अधिकांश कम्प्यूटेशनल प्रयास और समय प्रत्येक विंडो के मीडियनिका की गणना करने में व्यतीत होता है। चूंकि फ़िल्टर को सिग्नल में प्रत्येक प्रविष्टि को संसाधित करना चाहिए, छवियों जैसे बड़े सिग्नल के लिए, इस औसत गणना की दक्षता यह निर्धारित करने में एक महत्वपूर्ण कारक है कि एल्गोरिदम कितनी तेजी से चल सकता है। ऊपर वर्णित भोले-भाले कार्यान्वयन, मीडियनिका को खोजने के लिए विंडो में प्रत्येक प्रविष्टि को सॉर्ट करते हैं; हालाँकि, चूंकि संख्याओं की सूची में केवल मध्य मान की आवश्यकता होती है, चयन एल्गोरिदम अधिक कुशल हो सकते हैं। इसके अलावा, कुछ प्रकार के संकेत ( | आमतौर पर, अब तक अधिकांश कम्प्यूटेशनल प्रयास और समय प्रत्येक विंडो के मीडियनिका की गणना करने में व्यतीत होता है। चूंकि फ़िल्टर को सिग्नल में प्रत्येक प्रविष्टि को संसाधित करना चाहिए, छवियों जैसे बड़े सिग्नल के लिए, इस औसत गणना की दक्षता यह निर्धारित करने में एक महत्वपूर्ण कारक है कि एल्गोरिदम कितनी तेजी से चल सकता है। ऊपर वर्णित भोले-भाले कार्यान्वयन, मीडियनिका को खोजने के लिए विंडो में प्रत्येक प्रविष्टि को सॉर्ट करते हैं; हालाँकि, चूंकि संख्याओं की सूची में केवल मध्य मान की आवश्यकता होती है, चयन एल्गोरिदम अधिक कुशल हो सकते हैं। इसके अलावा, कुछ प्रकार के संकेत (अधिकांश छवियों के मामले में) पूर्ण संख्या के प्रतिनिधित्व का उपयोग करते हैं: इन मामलों में, [[हिस्टोग्राम]] मीडियनिकाएँ कहीं अधिक कुशल हो सकती हैं क्योंकि हिस्टोग्राम को विंडो से विंडो में अपडेट करना और हिस्टोग्राम के मीडियनिका को खोजना आसान है। विशेष रूप से कठिन नहीं है।<ref name="huang79">{{cite journal | ||
|first1=Thomas S. |last=Huang |first2=George J. |last2=Yang |first3=Gregory Y. |last3=Tang | |first1=Thomas S. |last=Huang |first2=George J. |last2=Yang |first3=Gregory Y. |last3=Tang | ||
|title=A fast two-dimensional median filtering algorithm | |title=A fast two-dimensional median filtering algorithm | ||
Line 61: | Line 61: | ||
== धार संरक्षण गुण == | == धार संरक्षण गुण == | ||
मेडियन फ़िल्टरिंग एक प्रकार की स्मूथिंग | मेडियन फ़िल्टरिंग एक प्रकार की स्मूथिंग विधि है, जैसा कि [[गौस्सियन धुंधलापन]] है। चिकने पैच या सिग्नल के चिकने क्षेत्रों में शोरध्वनि को दूर करने के लिए सभी चौरसाई विधिें प्रभावी हैं, लेकिन किनारों पर प्रतिकूल प्रभाव डालती हैं। अधिकांश हालांकि, सिग्नल में शोरध्वनि को कम करने के साथ-साथ किनारों को संरक्षित करना महत्वपूर्ण होता है। उदाहरण के लिए, छवियों के दृश्य स्वरूप के लिए किनारों का महत्वपूर्ण महत्व है। गौसियन शोरध्वनि के छोटे से मध्यम स्तर के लिए, एक निश्चित, निश्चित विंडो आकार के लिए किनारों को संरक्षित करते हुए शोरध्वनि को दूर करने के लिए औसत दर्जे का फिल्टर गॉसियन ब्लर की तुलना में स्पष्ट रूप से उत्तम है।<ref name="ariascastro09">{{cite journal | ||
|first1=Ery |last=Arias-Castro |first2=David L. |last2=Donoho | |first1=Ery |last=Arias-Castro |first2=David L. |last2=Donoho | ||
|title=Does median filtering truly preserve edges better than linear filtering? | |title=Does median filtering truly preserve edges better than linear filtering? | ||
Line 67: | Line 67: | ||
|doi=10.1214/08-AOS604 |doi-access=free |bibcode=2006math.....12422A |mr=2509071 |zbl=1160.62086 | |doi=10.1214/08-AOS604 |doi-access=free |bibcode=2006math.....12422A |mr=2509071 |zbl=1160.62086 | ||
|arxiv=math/0612422 |url=https://projecteuclid.org/euclid.aos/1239369019 | |arxiv=math/0612422 |url=https://projecteuclid.org/euclid.aos/1239369019 | ||
}}</ref> हालांकि, इसका प्रदर्शन | }}</ref> हालांकि, इसका प्रदर्शन शोरध्वनि के उच्च स्तर के लिए गॉसियन ब्लर से ज्यादा उत्तम नहीं है, जबकि [[धब्बेदार शोर|धब्बेदार शोरध्वनि]] और नमक और काली मिर्च शोरध्वनि (आवेगपूर्ण शोरध्वनि) के लिए यह विशेष रूप से प्रभावी है।<ref name="arce05">{{cite book | ||
|first1=Gonzalo R. |last=Arce | |first1=Gonzalo R. |last=Arce | ||
|title=Nonlinear Signal Processing: A Statistical Approach |publisher=Wiley |location=New Jersey, USA | |title=Nonlinear Signal Processing: A Statistical Approach |publisher=Wiley |location=New Jersey, USA | ||
|year=2005 |isbn=0-471-67624-1 | |year=2005 |isbn=0-471-67624-1 | ||
}}</ref> इस वजह से, डिजिटल | }}</ref> इस वजह से, डिजिटल छवि प्रोसेसिंग में मीडियन फ़िल्टरिंग का बहुत व्यापक रूप से उपयोग किया जाता है। | ||
== यह भी देखें == | == यह भी देखें == | ||
* एज-संरक्षण फ़िल्टरिंग | * एज-संरक्षण फ़िल्टरिंग | ||
* [[छवि शोर]] | * [[छवि शोर|छवि शोरध्वनि]] | ||
* [[भारित माध्यिका|भारित मीडियनिका]] | * [[भारित माध्यिका|भारित मीडियनिका]] | ||
* [[स्यूडोमेडियन]]|स्यूडो-मीडियनिका फिल्टर | * [[स्यूडोमेडियन]]|स्यूडो-मीडियनिका फिल्टर |
Revision as of 05:54, 29 March 2023
मीडियन फ़िल्टर एक गैर-रेखीय डिजिटल फिल्टर विधि है, जिसका उपयोग अधिकांश किसी छवि या संकेत शोरध्वनि सिग्नल शोरध्वनि को दूर करने के लिए किया जाता है। इस प्रकार के शोरध्वनि में कमी बाद के प्रसंस्करण के परिणामों को उत्तम बनाने के लिए एक विशिष्ट पूर्व-प्रसंस्करण (उदाहरण के लिए, एक छवि पर किनारे का पता लगाना) कदम है। मिडियन फ़िल्टरिंग का डिजिटल छवि प्रोसेसिंग में बहुत व्यापक रूप से उपयोग किया जाता है, क्योंकि कुछ शर्तों के अनुसार, यह शोरध्वनि को दूर करते हुए किनारों को संरक्षित (लेकिन नीचे की चर्चा देखें) करता है, सिग्नल प्रोसेसिंग में भी इसका उपयोग होता है।
एल्गोरिथम विवरण
मध्य फ़िल्टर का मुख्य विचार प्रविष्टि द्वारा सिग्नल एंट्री के मीडियनम से चलाना है, प्रत्येक प्रविष्टि को पड़ोसी प्रविष्टियों के मध्य के साथ बदलना। पड़ोसियों के पैटर्न को विंडो कहा जाता है, जो पूरे सिग्नल पर स्लाइड करता है, प्रवेश द्वारा प्रवेश करता है। एक-आयामी संकेतों के लिए, सबसे स्पष्ट विंडो केवल पहले कुछ पूर्ववर्ती और बाद की प्रविष्टियाँ हैं, जबकि द्वि-आयामी (या उच्च-आयामी) डेटा के लिए विंडो में दी गई त्रिज्या या दीर्घवृत्ताकार क्षेत्र (यानी मीडियनिका फ़िल्टर) के भीतर सभी प्रविष्टियाँ शामिल होनी चाहिए एक वियोज्य फ़िल्टर नहीं है)।
काम किया एक आयामी उदाहरण
प्रदर्शित करने के लिए, प्रत्येक प्रविष्टि के तुरंत पहले और बाद में एक प्रविष्टि के साथ तीन के विंडो आकार का उपयोग करके, एक औसत फ़िल्टर निम्नलिखित सरल एक-आयामी सिग्नल पर लागू किया जाएगा:
- x = (2, 3, 80, 6, 2, 3)।
तो, औसत फ़िल्टर आउटपुट सिग्नल y होगा:
- वाई1 = मेड(2, 3, 80) = 3, (पहले से ही 2, 3, और 80 बढ़ते क्रम में हैं इसलिए उन्हें व्यवस्थित करने की कोई आवश्यकता नहीं है)
- वाई2 = मेड(3, 80, 6) = मेड(3, 6, 80) = 6, (3, 80, और 6 को मीडियनिका खोजने के लिए पुनर्व्यवस्थित किया जाता है)
- वाई3 = मेड (80, 6, 2) = मेड (2, 6, 80) = 6,
- वाई4 = मेड (6, 2, 3) = मेड (2, 3, 6) = 3,
अर्थात। वाई = (3, 6, 6, 3)।
सीमा मुद्दे
उपरोक्त उदाहरण में, क्योंकि पहले मान से पहले कोई प्रविष्टि नहीं है, पहला मान दोहराया जाता है, जैसा कि अंतिम मान के साथ, विंडो को भरने के लिए पर्याप्त प्रविष्टियाँ प्राप्त करने के लिए। यह सिग्नल की सीमाओं पर लापता विंडो प्रविष्टियों को संभालने का एक तरीका है, लेकिन ऐसी अन्य योजनाएँ हैं जिनमें अलग-अलग गुण हैं जिन्हें विशेष परिस्थितियों में पसंद किया जा सकता है:
- बाद में सिग्नल या छवि बाउंड्री को क्रॉप करके या उसके बिना, बाउंड्री को प्रोसेस करने से बचें,
- सिग्नल में अन्य स्थानों से प्रविष्टियां प्राप्त करना। उदाहरण के लिए छवियों के साथ, दूर क्षैतिज या लंबवत सीमा से प्रविष्टियों का चयन किया जा सकता है,
- खिड़की को सीमाओं के पास सिकोड़ना, ताकि हर खिड़की भरी रहे।
द्वि-आयामी मीडियन फ़िल्टर छद्म कोड
एक साधारण द्वि-आयामी मीडियनिका फ़िल्टर एल्गोरिथम के लिए कोड इस तरह दिख सकता है:
1. आवंटित करें OutputPixelValue[image width][image height] 2. विंडो आवंटित करें [विंडो चौड़ाई × विंडो ऊंचाई] 3. edgex := (खिड़की की चौड़ाई / 2) गोल नीचे 4. नुकीला := (खिड़की की ऊंचाई / 2) नीचे गोल x के लिए edgex से छवि चौड़ाई - edgex do y के लिए edgey से छवि ऊंचाई तक - edgey do मैं = 0 fx के लिए 0 से विंडो चौड़ाई तक करें fy के लिए 0 से विंडो ऊंचाई तक करें विंडो [i] := inputPixelValue[x + fx - edgex][y + fy - edgey] मैं: = मैं + 1 विंडो में प्रविष्टियों को क्रमबद्ध करें [] OutputPixelValue[x][y] := window[window width * window height / 2]
यह एल्गोरिदम:
- केवल एक कलर चैनल को प्रोसेस करता है,
- गैर प्रसंस्करण सीमाओं के दृष्टिकोण को अपनाता है (सीमा मुद्दों के बारे में ऊपर की चर्चा देखें)।
एल्गोरिथम कार्यान्वयन मुद्दे
आमतौर पर, अब तक अधिकांश कम्प्यूटेशनल प्रयास और समय प्रत्येक विंडो के मीडियनिका की गणना करने में व्यतीत होता है। चूंकि फ़िल्टर को सिग्नल में प्रत्येक प्रविष्टि को संसाधित करना चाहिए, छवियों जैसे बड़े सिग्नल के लिए, इस औसत गणना की दक्षता यह निर्धारित करने में एक महत्वपूर्ण कारक है कि एल्गोरिदम कितनी तेजी से चल सकता है। ऊपर वर्णित भोले-भाले कार्यान्वयन, मीडियनिका को खोजने के लिए विंडो में प्रत्येक प्रविष्टि को सॉर्ट करते हैं; हालाँकि, चूंकि संख्याओं की सूची में केवल मध्य मान की आवश्यकता होती है, चयन एल्गोरिदम अधिक कुशल हो सकते हैं। इसके अलावा, कुछ प्रकार के संकेत (अधिकांश छवियों के मामले में) पूर्ण संख्या के प्रतिनिधित्व का उपयोग करते हैं: इन मामलों में, हिस्टोग्राम मीडियनिकाएँ कहीं अधिक कुशल हो सकती हैं क्योंकि हिस्टोग्राम को विंडो से विंडो में अपडेट करना और हिस्टोग्राम के मीडियनिका को खोजना आसान है। विशेष रूप से कठिन नहीं है।[1]
धार संरक्षण गुण
मेडियन फ़िल्टरिंग एक प्रकार की स्मूथिंग विधि है, जैसा कि गौस्सियन धुंधलापन है। चिकने पैच या सिग्नल के चिकने क्षेत्रों में शोरध्वनि को दूर करने के लिए सभी चौरसाई विधिें प्रभावी हैं, लेकिन किनारों पर प्रतिकूल प्रभाव डालती हैं। अधिकांश हालांकि, सिग्नल में शोरध्वनि को कम करने के साथ-साथ किनारों को संरक्षित करना महत्वपूर्ण होता है। उदाहरण के लिए, छवियों के दृश्य स्वरूप के लिए किनारों का महत्वपूर्ण महत्व है। गौसियन शोरध्वनि के छोटे से मध्यम स्तर के लिए, एक निश्चित, निश्चित विंडो आकार के लिए किनारों को संरक्षित करते हुए शोरध्वनि को दूर करने के लिए औसत दर्जे का फिल्टर गॉसियन ब्लर की तुलना में स्पष्ट रूप से उत्तम है।[2] हालांकि, इसका प्रदर्शन शोरध्वनि के उच्च स्तर के लिए गॉसियन ब्लर से ज्यादा उत्तम नहीं है, जबकि धब्बेदार शोरध्वनि और नमक और काली मिर्च शोरध्वनि (आवेगपूर्ण शोरध्वनि) के लिए यह विशेष रूप से प्रभावी है।[3] इस वजह से, डिजिटल छवि प्रोसेसिंग में मीडियन फ़िल्टरिंग का बहुत व्यापक रूप से उपयोग किया जाता है।
यह भी देखें
- एज-संरक्षण फ़िल्टरिंग
- छवि शोरध्वनि
- भारित मीडियनिका
- स्यूडोमेडियन|स्यूडो-मीडियनिका फिल्टर
- लुलु चौरसाई
- द्विपक्षीय फिल्टर
- सीमित डेटा वैधता के साथ औसत
- चौरसाई
संदर्भ
- ↑ Huang, Thomas S.; Yang, George J.; Tang, Gregory Y. (February 1979). "A fast two-dimensional median filtering algorithm" (PDF). IEEE Transactions on Acoustics, Speech, and Signal Processing. 27 (1): 13–18. doi:10.1109/TASSP.1979.1163188.
- ↑ Arias-Castro, Ery; Donoho, David L. (June 2009). "Does median filtering truly preserve edges better than linear filtering?". Annals of Statistics. 37 (3): 1172–2009. arXiv:math/0612422. Bibcode:2006math.....12422A. doi:10.1214/08-AOS604. MR 2509071. Zbl 1160.62086.
- ↑ Arce, Gonzalo R. (2005). Nonlinear Signal Processing: A Statistical Approach. New Jersey, USA: Wiley. ISBN 0-471-67624-1.
बाहरी संबंध
- Fast MATLAB one-dimensional median filter implementation
- Mathematica MedianFilter function
- Median filter
- Fast two-dimensional median filter
- Implementation of two-dimensional median filter in constant time (GPL license) – the running time per pixel of this algorithm is proportional to the number of elements in a histogram (typically this is , where n is the number of bits per channel), even though this in turn is a constant.
- Implementation written in different programming languages (on Rosetta Code)
- Dr Dobbs article
- 100+ Times Faster Weighted Median Filter
- Circle median filter Median filter for circle-valued data such as phase or orientation images (C++/Matlab)