मीडियन फ़िल्टर: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(11 intermediate revisions by 4 users not shown)
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|एक ही शोर वाले फोटोग्राफ पर अलग-अलग त्रिज्या के 3 मीडियन फिल्टर का उदाहरण।]]मीडियन फ़िल्टर एक गैर-रेखीय [[डिजिटल फिल्टर]] तकनीक है, जिसका उपयोग अक्सर किसी छवि या [[संकेत शोर]] सिग्नल शोर को दूर करने के लिए किया जाता है। इस तरह के [[शोर में कमी]] बाद के प्रसंस्करण के परिणामों को बेहतर बनाने के लिए एक विशिष्ट पूर्व-प्रसंस्करण कदम है (उदाहरण के लिए, एक छवि पर [[किनारे का पता लगाना]])डिजिटल [[ मूर्ति प्रोद्योगिकी ]] में मेडियन फ़िल्टरिंग का बहुत व्यापक रूप से उपयोग किया जाता है, क्योंकि कुछ शर्तों के तहत, यह शोर को दूर करते हुए किनारों को संरक्षित करता है (लेकिन नीचे की चर्चा देखें), [[ संकेत आगे बढ़ाना ]] में भी इसका उपयोग होता है।
[[Image:Median filter example.jpg|thumb|right|200px|एक ही ध्वनि वाले फोटोग्राफ पर अलग-अलग त्रिज्या के 3 मीडियन फिल्टर का उदाहरण।]]'''मीडियन फ़िल्टर''' एक गैर-रेखीय [[डिजिटल फिल्टर]] विधि है, जिसका उपयोग अधिकांश किसी छवि या [[संकेत शोर|संकेत ध्वनि]] संकेत ध्वनि को दूर करने के लिए किया जाता है। इस प्रकार के [[शोर में कमी|ध्वनि में कमी]] बाद के प्रसंस्करण के परिणामों को उत्तम बनाने के लिए एक विशिष्ट पूर्व-प्रसंस्करण (उदाहरण के लिए, एक छवि पर [[किनारे का पता लगाना]]) कदम है। मिडियन फ़िल्टरिंग का डिजिटल [[ मूर्ति प्रोद्योगिकी |छवि प्रोसेसिंग]] में बहुत व्यापक रूप से उपयोग किया जाता है, क्योंकि कुछ शर्तों के अनुसार, यह ध्वनि को दूर करते हुए किनारों को संरक्षित (किन्तु नीचे की चर्चा देखें) करता है, [[ संकेत आगे बढ़ाना | संकेत प्रोसेसिंग]] में भी इसका उपयोग होता है।


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


== काम किया एक आयामी उदाहरण ==
== काम किया एक आयामी उदाहरण ==
प्रदर्शित करने के लिए, प्रत्येक प्रविष्टि के तुरंत पहले और बाद में एक प्रविष्टि के साथ तीन के विंडो आकार का उपयोग करके, एक औसत फ़िल्टर निम्नलिखित सरल एक-आयामी सिग्नल पर लागू किया जाएगा:
प्रदर्शित करने के लिए, प्रत्येक प्रविष्टि के तुरंत पहले और बाद में एक प्रविष्टि के साथ तीन के विंडो आकार का उपयोग करके, एक औसत फ़िल्टर निम्नलिखित सरल एक-आयामी संकेत पर प्रायुक्त किया जाएगा:


: x = (2, 3, 80, 6, 2, 3)।
: x = (2, 3, 80, 6, 2, 3)।


तो, औसत फ़िल्टर आउटपुट सिग्नल y होगा:
तो, औसत फ़िल्टर आउटपुट संकेत y होगा:


: वाई<sub>1</sub> = मेड(2, 3, 80) = 3, (पहले से ही 2, 3, और 80 बढ़ते क्रम में हैं इसलिए उन्हें व्यवस्थित करने की कोई आवश्यकता नहीं है)
: ''y''<sub>1</sub> = मेड(2, 3, 80) = 3, (पहले से ही 2, 3, और 80 बढ़ते क्रम में हैं इसलिए उन्हें व्यवस्थित करने की कोई आवश्यकता नहीं है)
: वाई<sub>2</sub> = मेड(3, 80, 6) = मेड(3, 6, 80) = 6, (3, 80, और 6 को मीडियनिका खोजने के लिए पुनर्व्यवस्थित किया जाता है)
: ''y''<sub>2</sub> = मेड(3, 80, 6) = मेड(3, 6, 80) = 6, (3, 80, और 6 को मीडियनिका खोजने के लिए पुनर्व्यवस्थित किया जाता है)
: वाई<sub>3</sub> = मेड (80, 6, 2) = मेड (2, 6, 80) = 6,
: ''y''<sub>3</sub> = मेड (80, 6, 2) = मेड (2, 6, 80) = 6,
: वाई<sub>4</sub> = मेड (6, 2, 3) = मेड (2, 3, 6) = 3,
: ''y''<sub>4</sub> = मेड (6, 2, 3) = मेड (2, 3, 6) = 3,


अर्थात। वाई = (3, 6, 6, 3)।
अर्थात। ''y'' = (3, 6, 6, 3)।


== सीमा मुद्दे ==
== सीमा विवाद ==
उपरोक्त उदाहरण में, क्योंकि पहले मान से पहले कोई प्रविष्टि नहीं है, पहला मान दोहराया जाता है, जैसा कि अंतिम मान के साथ, विंडो को भरने के लिए पर्याप्त प्रविष्टियाँ प्राप्त करने के लिए। यह सिग्नल की सीमाओं पर लापता विंडो प्रविष्टियों को संभालने का एक तरीका है, लेकिन ऐसी अन्य योजनाएँ हैं जिनमें अलग-अलग गुण हैं जिन्हें विशेष परिस्थितियों में पसंद किया जा सकता है:
ऊपर दिए गए उदाहरण में, क्योंकि पहले मान से पहले कोई प्रविष्टि नहीं है, पहला मान दोहराया जाता है, जैसा कि अंतिम मान के साथ विंडो को भरने के लिए पर्याप्त प्रविष्टियाँ प्राप्त करने के लिए होता है। यह सिग्नल की सीमाओं पर लापता विंडो प्रविष्टियों को संभालने का एक तरीका है, किन्तु ऐसी अन्य योजनाएँ हैं जिनमें अलग-अलग गुण हैं जिन्हें विशेष परिस्थितियों में पसंद किया जा सकता है:


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


== द्वि-आयामी मीडियन फ़िल्टर छद्म कोड ==
== द्वि-आयामी मीडियन फ़िल्टर छद्म कोड ==
एक साधारण द्वि-आयामी मीडियनिका फ़िल्टर एल्गोरिथम के लिए कोड इस तरह दिख सकता है:
एक साधारण द्वि-आयामी मीडियनिका फ़िल्टर एल्गोरिथम के लिए कोड इस प्रकार दिख सकता है:<syntaxhighlight lang="d">
 
1. allocate outputPixelValue[image width][image height]
1. आवंटित करें OutputPixelValue[image width][image height]
2. allocate window[window width × window height]
2. विंडो आवंटित करें [विंडो चौड़ाई × विंडो ऊंचाई]
3. edgex := (window width / 2) rounded down
3. edgex := (खिड़की की चौड़ाई / 2) गोल नीचे
4. edgey := (window height / 2) rounded down
4. नुकीला := (खिड़की की ऊंचाई / 2) नीचे गोल
    for x from edgex to image width - edgex do
    ''x'' के लिए edgex से छवि चौड़ाई - edgex do
    for y from edgey to image height - edgey do
    ''y'' के लिए edgey से छवि ऊंचाई तक - edgey do
        i = 0
        मैं = 0
        for fx from 0 to window width do
        ''fx'' के लिए 0 से विंडो चौड़ाई तक करें
            for fy from 0 to window height do
            ''fy'' के लिए 0 से विंडो ऊंचाई तक करें
                window[i] := inputPixelValue[x + fx - edgex][y + fy - edgey]
                विंडो [i] := inputPixelValue[x + fx - edgex][y + fy - edgey]
                i := i + 1
                मैं: = मैं + 1
        sort entries in window[]
        विंडो में प्रविष्टियों को क्रमबद्ध करें []
        outputPixelValue[x][y] := window[window width * window height / 2]
        OutputPixelValue[x][y] := window[window width * window height / 2]
</syntaxhighlight>यह एल्गोरिदम:
 
यह एल्गोरिदम:
* केवल एक कलर चैनल को प्रोसेस करता है,
* केवल एक कलर चैनल को प्रोसेस करता है,
* गैर प्रसंस्करण सीमाओं के दृष्टिकोण को अपनाता है (सीमा मुद्दों के बारे में ऊपर की चर्चा देखें)।
* गैर प्रसंस्करण सीमाओं के दृष्टिकोण को अपनाता है (सीमा विवादों के बारे में ऊपर की चर्चा देखें)।


[[Image:Medianfilterp.png|thumb|[[दोषपूर्ण पिक्सेल]] द्वारा गंभीर रूप से दूषित छवि को बेहतर बनाने के लिए मीडियन फ़िल्टर का उपयोग]]
[[Image:Medianfilterp.png|thumb|[[दोषपूर्ण पिक्सेल]] द्वारा गंभीर रूप से दूषित छवि को उत्तम बनाने के लिए मीडियन फ़िल्टर का उपयोग]]


== एल्गोरिथम कार्यान्वयन मुद्दे ==
== एल्गोरिथम कार्यान्वयन विवाद ==
आमतौर पर, अब तक अधिकांश कम्प्यूटेशनल प्रयास और समय प्रत्येक विंडो के मीडियनिका की गणना करने में व्यतीत होता है। चूंकि फ़िल्टर को सिग्नल में प्रत्येक प्रविष्टि को संसाधित करना चाहिए, छवियों जैसे बड़े सिग्नल के लिए, इस औसत गणना की दक्षता यह निर्धारित करने में एक महत्वपूर्ण कारक है कि एल्गोरिदम कितनी तेजी से चल सकता है। ऊपर वर्णित भोले-भाले कार्यान्वयन, मीडियनिका को खोजने के लिए विंडो में प्रत्येक प्रविष्टि को सॉर्ट करते हैं; हालाँकि, चूंकि संख्याओं की सूची में केवल मध्य मान की आवश्यकता होती है, चयन एल्गोरिदम अधिक कुशल हो सकते हैं। इसके अलावा, कुछ प्रकार के संकेत (अक्सर छवियों के मामले में) पूर्ण संख्या के प्रतिनिधित्व का उपयोग करते हैं: इन मामलों में, [[हिस्टोग्राम]] मीडियनिकाएँ कहीं अधिक कुशल हो सकती हैं क्योंकि हिस्टोग्राम को विंडो से विंडो में अपडेट करना और हिस्टोग्राम के मीडियनिका को खोजना आसान है। विशेष रूप से कठिन नहीं है।<ref name="huang79">{{cite journal
सामान्यतः, अब तक अधिकांश कम्प्यूटेशनल प्रयास और समय प्रत्येक विंडो के मीडियनिका की गणना करने में व्यतीत होता है। चूंकि फ़िल्टर को संकेत में प्रत्येक प्रविष्टि को संसाधित करना चाहिए, छवियों जैसे बड़े संकेत के लिए, इस औसत गणना की दक्षता यह निर्धारित करने में एक महत्वपूर्ण कारक है कि एल्गोरिदम कितनी तेजी से चल सकता है। ऊपर वर्णित भोले-भाले कार्यान्वयन, मीडियनिका को खोजने के लिए विंडो में प्रत्येक प्रविष्टि को सॉर्ट करते हैं; चूँकि, चूंकि संख्याओं की सूची में केवल मध्य मान की आवश्यकता होती है, चयन एल्गोरिदम अधिक कुशल हो सकते हैं। इसके अलावा, कुछ प्रकार के संकेत (अधिकांश छवियों के स्थिति में) पूर्ण संख्या के प्रतिनिधित्व का उपयोग करते हैं: इन स्थितियों में, [[हिस्टोग्राम]] मीडियनिकाएँ कहीं अधिक कुशल हो सकती हैं क्योंकि हिस्टोग्राम को विंडो से विंडो में अपडेट करना और हिस्टोग्राम के मीडियनिका को खोजना आसान है। विशेष रूप से कठिन नहीं है।<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 59:


== धार संरक्षण गुण ==
== धार संरक्षण गुण ==
मेडियन फ़िल्टरिंग एक प्रकार की स्मूथिंग तकनीक है, जैसा कि [[गौस्सियन धुंधलापन]] है। चिकने पैच या सिग्नल के चिकने क्षेत्रों में शोर को दूर करने के लिए सभी चौरसाई तकनीकें प्रभावी हैं, लेकिन किनारों पर प्रतिकूल प्रभाव डालती हैं। अक्सर हालांकि, सिग्नल में शोर को कम करने के साथ-साथ किनारों को संरक्षित करना महत्वपूर्ण होता है। उदाहरण के लिए, छवियों के दृश्य स्वरूप के लिए किनारों का महत्वपूर्ण महत्व है। गौसियन शोर के छोटे से मध्यम स्तर के लिए, एक निश्चित, निश्चित विंडो आकार के लिए किनारों को संरक्षित करते हुए शोर को दूर करने के लिए औसत दर्जे का फिल्टर गॉसियन ब्लर की तुलना में स्पष्ट रूप से बेहतर है।<ref name="ariascastro09">{{cite journal
मेडियन फ़िल्टरिंग एक प्रकार की स्मूथिंग विधि है, जैसा कि [[गौस्सियन धुंधलापन]] है। चिकने पैच या संकेत के चिकने क्षेत्रों में ध्वनि को दूर करने के लिए सभी चौरसाई विधिें प्रभावी हैं, किन्तु किनारों पर प्रतिकूल प्रभाव डालती हैं। अधिकांश चूंकि, संकेत में ध्वनि को कम करने के साथ-साथ किनारों को संरक्षित करना महत्वपूर्ण होता है। उदाहरण के लिए, छवियों के दृश्य स्वरूप के लिए किनारों का महत्वपूर्ण महत्व है। गौसियन ध्वनि के छोटे से मध्यम स्तर के लिए, एक निश्चित, निश्चित विंडो आकार के लिए किनारों को संरक्षित करते हुए ध्वनि को दूर करने के लिए औसत दर्जे का फिल्टर गॉसियन ब्लर की तुलना में स्पष्ट रूप से उत्तम है।<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 65:
  |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 name="arce05">{{cite book
}}</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> इस वजह से, डिजिटल छवि प्रोसेसिंग में मीडियन फ़िल्टरिंग का बहुत व्यापक रूप से उपयोग किया जाता है।


== यह भी देखें ==
== यह भी देखें ==
* एज-संरक्षण फ़िल्टरिंग
* एज-संरक्षण फ़िल्टरिंग
* [[छवि शोर]]
* [[छवि शोर|छवि ध्वनि]]
* [[भारित माध्यिका|भारित मीडियनिका]]
* [[भारित माध्यिका|भारित मीडियनिका]]
* [[स्यूडोमेडियन]]|स्यूडो-मीडियनिका फिल्टर
* [[स्यूडोमेडियन]]|स्यूडो-मीडियनिका फिल्टर
Line 81: Line 79:
* [[द्विपक्षीय फिल्टर]]
* [[द्विपक्षीय फिल्टर]]
* [[सीमित डेटा वैधता के साथ औसत]]
* [[सीमित डेटा वैधता के साथ औसत]]
* चौरसाई
 
 
 
 
 
 
 
 
 
 
 


== संदर्भ ==
== संदर्भ ==
Line 98: Line 106:
* [https://github.com/mstorath/CircleMedianFilter Circle median filter] Median filter for circle-valued data such as phase or orientation images (C++/Matlab)
* [https://github.com/mstorath/CircleMedianFilter Circle median filter] Median filter for circle-valued data such as phase or orientation images (C++/Matlab)


{{Noise|state=uncollapsed}}[[Category: नॉनलाइनर फिल्टर]] [[Category: संकेत आगे बढ़ाना]] [[Category: छवि शोर में कमी तकनीक]] [[Category: स्यूडोकोड के उदाहरण वाले लेख]]
[[Category:Collapse templates]]
 
 
 
[[Category: Machine Translated Page]]
[[Category:Created On 20/03/2023]]
[[Category:Created On 20/03/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]

Latest revision as of 09:27, 19 April 2023

एक ही ध्वनि वाले फोटोग्राफ पर अलग-अलग त्रिज्या के 3 मीडियन फिल्टर का उदाहरण।

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

एल्गोरिथम विवरण

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

काम किया एक आयामी उदाहरण

प्रदर्शित करने के लिए, प्रत्येक प्रविष्टि के तुरंत पहले और बाद में एक प्रविष्टि के साथ तीन के विंडो आकार का उपयोग करके, एक औसत फ़िल्टर निम्नलिखित सरल एक-आयामी संकेत पर प्रायुक्त किया जाएगा:

x = (2, 3, 80, 6, 2, 3)।

तो, औसत फ़िल्टर आउटपुट संकेत y होगा:

y1 = मेड(2, 3, 80) = 3, (पहले से ही 2, 3, और 80 बढ़ते क्रम में हैं इसलिए उन्हें व्यवस्थित करने की कोई आवश्यकता नहीं है)
y2 = मेड(3, 80, 6) = मेड(3, 6, 80) = 6, (3, 80, और 6 को मीडियनिका खोजने के लिए पुनर्व्यवस्थित किया जाता है)
y3 = मेड (80, 6, 2) = मेड (2, 6, 80) = 6,
y4 = मेड (6, 2, 3) = मेड (2, 3, 6) = 3,

अर्थात। y = (3, 6, 6, 3)।

सीमा विवाद

ऊपर दिए गए उदाहरण में, क्योंकि पहले मान से पहले कोई प्रविष्टि नहीं है, पहला मान दोहराया जाता है, जैसा कि अंतिम मान के साथ विंडो को भरने के लिए पर्याप्त प्रविष्टियाँ प्राप्त करने के लिए होता है। यह सिग्नल की सीमाओं पर लापता विंडो प्रविष्टियों को संभालने का एक तरीका है, किन्तु ऐसी अन्य योजनाएँ हैं जिनमें अलग-अलग गुण हैं जिन्हें विशेष परिस्थितियों में पसंद किया जा सकता है:

  • बाद में संकेत या छवि सीमा को क्रॉप करके या उसके बिना, सीमा को प्रोसेस करने से बचें,
  • संकेत में अन्य स्थानों से प्रविष्टियां प्राप्त करना। उदाहरण के लिए छवियों के साथ, दूर क्षैतिज या लंबवत सीमा से प्रविष्टियों का चयन किया जा सकता है,
  • विंडो को सीमाओं के पास सिकोड़ना, जिससे हर विंडो भरी रहे।

द्वि-आयामी मीडियन फ़िल्टर छद्म कोड

एक साधारण द्वि-आयामी मीडियनिका फ़िल्टर एल्गोरिथम के लिए कोड इस प्रकार दिख सकता है:

1. allocate outputPixelValue[image width][image height]
2. allocate window[window width × window height]
3. edgex := (window width / 2) rounded down
4. edgey := (window height / 2) rounded down
    for x from edgex to image width - edgex do
    for y from edgey to image height - edgey do
        i = 0
        for fx from 0 to window width do
            for fy from 0 to window height do
                window[i] := inputPixelValue[x + fx - edgex][y + fy - edgey]
                i := i + 1
        sort entries in window[]
        outputPixelValue[x][y] := window[window width * window height / 2]

यह एल्गोरिदम:

  • केवल एक कलर चैनल को प्रोसेस करता है,
  • गैर प्रसंस्करण सीमाओं के दृष्टिकोण को अपनाता है (सीमा विवादों के बारे में ऊपर की चर्चा देखें)।
दोषपूर्ण पिक्सेल द्वारा गंभीर रूप से दूषित छवि को उत्तम बनाने के लिए मीडियन फ़िल्टर का उपयोग

एल्गोरिथम कार्यान्वयन विवाद

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


धार संरक्षण गुण

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

यह भी देखें







संदर्भ

  1. 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.
  2. 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.
  3. Arce, Gonzalo R. (2005). Nonlinear Signal Processing: A Statistical Approach. New Jersey, USA: Wiley. ISBN 0-471-67624-1.


बाहरी संबंध