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

From Vigyanwiki
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|एक ही शोरध्वनि वाले फोटोग्राफ पर अलग-अलग त्रिज्या के 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)।


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


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


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


  1. आवंटित करें OutputPixelValue[image width][image height]
  1. आवंटित करें OutputPixelValue[image width][image height]
  2. विंडो आवंटित करें [विंडो चौड़ाई × विंडो ऊंचाई]
  2. विंडो आवंटित करें [विंडो चौड़ाई × विंडो ऊंचाई]
  3. edgex := (खिड़की की चौड़ाई / 2) गोल नीचे
  3. edgexe:= (विंडो की चौड़ाई / 2) गोल नीचे
  4. नुकीला := (खिड़की की ऊंचाई / 2) नीचे गोल
  4. नुकीला�:= (विंडो की ऊंचाई / 2) नीचे गोल
     ''x'' के लिए edgex से छवि चौड़ाई - edgex do
     ''x'' के लिए edgex से छवि चौड़ाई - edgex do
     ''y'' के लिए edgey से छवि ऊंचाई तक - edgey do
     ''y'' के लिए edgey से छवि ऊंचाई तक - edgey do
Line 38: Line 38:
         ''fx'' के लिए 0 से विंडो चौड़ाई तक करें
         ''fx'' के लिए 0 से विंडो चौड़ाई तक करें
             ''fy'' के लिए 0 से विंडो ऊंचाई तक करें
             ''fy'' के लिए 0 से विंडो ऊंचाई तक करें
                 विंडो [i] := inputPixelValue[x + fx - edgex][y + fy - edgey]
                 विंडो [i]]:= inputPixelValue[x + fx - edgex][y + fy - edgey]
                 मैं: = मैं + 1
                 मैं: = मैं + 1
         विंडो में प्रविष्टियों को क्रमबद्ध करें []
         विंडो में प्रविष्टियों को क्रमबद्ध करें []
         OutputPixelValue[x][y] := window[window width * window height / 2]
         OutputPixelValue[x][y]]:= window[window width * window height / 2]


यह एल्गोरिदम:
यह एल्गोरिदम:
Line 49: Line 49:
[[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 61:


== धार संरक्षण गुण ==
== धार संरक्षण गुण ==
मेडियन फ़िल्टरिंग एक प्रकार की स्मूथिंग विधि है, जैसा कि [[गौस्सियन धुंधलापन]] है। चिकने पैच या सिग्नल के चिकने क्षेत्रों में शोरध्वनि को दूर करने के लिए सभी चौरसाई विधिें प्रभावी हैं, लेकिन किनारों पर प्रतिकूल प्रभाव डालती हैं। अधिकांश हालांकि, सिग्नल में शोरध्वनि को कम करने के साथ-साथ किनारों को संरक्षित करना महत्वपूर्ण होता है। उदाहरण के लिए, छवियों के दृश्य स्वरूप के लिए किनारों का महत्वपूर्ण महत्व है। गौसियन शोरध्वनि के छोटे से मध्यम स्तर के लिए, एक निश्चित, निश्चित विंडो आकार के लिए किनारों को संरक्षित करते हुए शोरध्वनि को दूर करने के लिए औसत दर्जे का फिल्टर गॉसियन ब्लर की तुलना में स्पष्ट रूप से उत्तम है।<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 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 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
Line 75: Line 75:
== यह भी देखें ==
== यह भी देखें ==
* एज-संरक्षण फ़िल्टरिंग
* एज-संरक्षण फ़िल्टरिंग
* [[छवि शोर|छवि शोरध्वनि]]
* [[छवि शोर|छवि ध्वनि]]
* [[भारित माध्यिका|भारित मीडियनिका]]
* [[भारित माध्यिका|भारित मीडियनिका]]
* [[स्यूडोमेडियन]]|स्यूडो-मीडियनिका फिल्टर
* [[स्यूडोमेडियन]]|स्यूडो-मीडियनिका फिल्टर

Revision as of 06:03, 29 March 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. आवंटित करें OutputPixelValue[image width][image height]
2. विंडो आवंटित करें [विंडो चौड़ाई × विंडो ऊंचाई]
3. edgexe:= (विंडो की चौड़ाई / 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] इस वजह से, डिजिटल छवि प्रोसेसिंग में मीडियन फ़िल्टरिंग का बहुत व्यापक रूप से उपयोग किया जाता है।

यह भी देखें

संदर्भ

  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.


बाहरी संबंध