व्यस्त फिल्टरिंगवर आधारित प्रतिमा पुनर्संचयित. डिकॉनव्होल्यूशनसाठी विद्यमान दृष्टिकोन

चेरचर 11.04.2019
व्हायबर डाउनलोड करा

गणिती मॉडेलविसंगत प्रतिमेची निर्मिती चार फूरियर ट्रान्सफॉर्मसह अभिव्यक्ती म्हणून लिहिली जाऊ शकते:

वारंवारता निर्देशांकांमध्ये, ही अभिव्यक्ती खालीलप्रमाणे पुन्हा लिहिली जाऊ शकते:

ऑब्जेक्टचा स्पेक्ट्रम कुठे आहे, प्रतिमेचा स्पेक्ट्रम आहे आणि ऑप्टिकल ट्रान्सफर फंक्शन आहे.

ऑप्टिकल ट्रान्सफर फंक्शन सिम्युलेटेड डिव्हाइस बनवणाऱ्या कन्व्हर्टर्सच्या कॅस्केडच्या सर्व OPF चे उत्पादन म्हणून प्रस्तुत केले जाऊ शकते:

कॅस्केडमध्ये स्नेहन, कंपन, घोस्टिंग सारख्या कन्व्हर्टर असतात आणि इतर. ते सर्व व्युत्पन्न प्रतिमेची गुणवत्ता खराब करतात. जर , तर या कन्व्हर्टरचे MTF असे दिसते:

तांदूळ. 1. ब्लर, घोस्टिंग आणि कंपनचा MPF आलेख

प्रश्न उद्भवतो: विकृत लिंक्सची वैशिष्ट्ये जाणून, प्रतिमा गुणवत्ता सुधारणे शक्य आहे का? शेवटी, कॅस्केडमध्ये एक दुवा जोडणे पुरेसे आहे जे कार्य करते व्यस्त रूपांतरणहस्तांतरण कार्यासह:

त्यानंतर, OPF ने गुणाकार करणे व्यस्त कार्यवरील अभिव्यक्तीचे रूपांतर होईल:

.

म्हणजेच, अंतिम प्रतिमेचा स्पेक्ट्रम मूळ ऑब्जेक्टच्या स्पेक्ट्रमसारखाच असेल. हे शक्य आहे का? IN सामान्य केसखालील कारणांसाठी नाही:

जरी काही प्रकरणांमध्ये या तत्त्वांवर आधारित प्रतिमा प्रक्रियेद्वारे सुधारित प्रतिमा गुणवत्ता प्राप्त करणे शक्य आहे. अशा पद्धती म्हणतात रिव्हर्स फिल्टरिंग पद्धती. रिव्हर्स फिल्टरिंग बहुतेक वेळा संगणकावर केले जाते संख्यात्मक पद्धती, परंतु ऑप्टिकल पद्धती (फूरियर ऑप्टिक्स पद्धती) वापरून देखील केले जाऊ शकते.

अस्पष्टतेने विकृत केलेल्या प्रतिमेचे उदाहरण वापरून रिव्हर्स फिल्टरिंगचा विचार करूया. ब्लरचे ऑप्टिकल ट्रान्सफर फंक्शन अभिव्यक्तीद्वारे निर्धारित केले जाते:

.

पुनर्संचयित कनवर्टरचे ओपीएफ तयार करण्याचा प्रयत्न करूया:

.

तांदूळ. 2. स्नेहन साठी MPF पुनर्संचयित कनवर्टर

पूर्णांक मूल्यांच्या प्रदेशात, हे कार्य अनंताकडे जाते. हे दोन कार्यांचे उत्पादन म्हणून सादर करणे अधिक सोयीस्कर आहे:

नंतर, पुनर्संचयित कार्याचा पहिला भाग सरळ रेषा आहे:

तांदूळ. 3. पुनर्संचयित कार्याचा पहिला भाग

अभिव्यक्ती पासून गुणाकार केल्यानंतर हस्तांतरण वैशिष्ट्यअस्पष्टता साइनमध्ये बदलेल आणि संपूर्ण उपकरणाचा OPF साइनसॉइड सारखा दिसेल आणि हे घोस्टिंग सारख्या विकृतीचे OPF आहे. अशाप्रकारे, रिव्हर्स फिल्टरिंगच्या सहाय्याने, ब्लर-प्रकार विकृतीऐवजी, आम्हाला भूत-प्रकार विकृती प्राप्त झाली. जर वस्तू लहान असेल आणि अस्पष्टता मोठी असेल, तर असे फिल्टरिंग ऑब्जेक्टच्या आकार आणि आकाराचा अंदाज घेण्यासाठी आणि इतर काही कामांसाठी पुरेसे आहे.

तांदूळ. 4. अस्पष्ट आणि भुताटक प्रतिमा

जर वस्तूच्या तुलनेत अस्पष्टता लहान असेल, तर स्पेक्ट्रमवर अशा प्रभावामुळे दुहेरी ऑब्जेक्टची वेगळी प्रतिमा येणार नाही. रिस्टोरेशन कन्व्हर्टरच्या OPF चे पुढील फेरफार खालीलप्रमाणे आहे. इमेज घोस्टिंग काढून टाकण्यासाठी, तुम्ही खालील OPF सह कन्व्हर्टर वापरू शकता:

.

तांदूळ. 5. भूतबाधा दूर करण्यासाठी कनवर्टर

मग साइन नकारात्मक भाग सकारात्मक भागांमध्ये बदलतो आणि आपण दुप्पट होण्यापासून मुक्त होतो. कॅस्केडचा अंतिम OPF असे दिसेल:

तांदूळ. 6. कन्व्हर्टर कॅस्केडचा अंतिम OPF

हे OPF आदर्श उपकरणाच्या OPF पेक्षा वेगळे आहे कारण तेथे गहाळ फ्रिक्वेन्सी असलेले क्षेत्र आहेत, परंतु बऱ्याच प्रकरणांमध्ये हे महत्त्वाचे नसते. सराव मध्ये, ऑब्जेक्टचा आकार आणि आकार पुनर्संचयित करणे अधिक महत्वाचे आहे.

मध्ये जीर्णोद्धार कनवर्टरचे ओपीएफ या प्रकरणातअभिव्यक्तीद्वारे निर्धारित केले जाते:

.

तांदूळ. 7. पुनर्रचना कनवर्टरचे ओपीएफ

रिव्हर्स फिल्टरिंग पद्धतींचे अनेक तोटे आहेत:

मूळ प्रतिमा

डीफोकस करणे आणि कडा कापणे

पुनर्संचयित प्रतिमा

गोंगाट करणारी प्रतिमा पुनर्संचयित केली

तांदूळ. 8. प्रतिमा पुनर्संचयित करण्याचे उदाहरण

प्रतिमेमध्ये असे गुणधर्म असू शकतात की ती फक्त एज इफेक्ट्समुळे उलट फिल्टर वापरून पुनर्संचयित केली जाऊ शकत नाही.

अशाप्रकारे, व्यस्त फिल्टरिंग पद्धतीची स्पष्ट साधेपणा असूनही, ती मर्यादित वर्गातील प्रतिमा पुनर्संचयित करण्यासाठी यशस्वीरित्या वापरली जाऊ शकते ज्यामध्ये किनारी पार्श्वभूमी पातळी स्थिर आहे. याव्यतिरिक्त, व्यस्त फिल्टरिंग पद्धतीमध्ये अत्यंत कमी आवाज प्रतिकारशक्ती आहे.

सामान्य व्हिज्युअल सिस्टीममध्ये, असे दिसून येते की आदर्श परिस्थितीत, एका बिंदूवर लक्ष केंद्रित केलेले किरण प्रत्यक्षात थोडेसे वळतात. प्रतिमेचे हे “अस्पष्ट” होऊ शकते विविध आकार, तथापि ते कधीकधी गॉसियन पॉइंट स्प्रेड फंक्शनद्वारे मॉडेल केले जाऊ शकते जे एका युनिट व्हॉल्यूममध्ये सामान्य केले जाऊ शकते:

कारण हे फंक्शन x किंवा y वर अवलंबून आहे आणि वेगळे नाही, त्याला वर्तुळाकार सममिती आहे. हँकेल फॉर्म्युला वापरून फुरियर ट्रान्सफॉर्मची गणना केली जाऊ शकते.

तथापि, लक्षात घ्या की गॉसियन फंक्शन x आणि y च्या दोन फंक्शन्सच्या गुणाकारात मोडते. म्हणून दुसरा दृष्टिकोन कमी कठीण असू शकतो:

उजव्या बाजूला पहिले अविभाज्य बरोबर आहे

तांदूळ. ६.८. प्रतिमेचे फोकस करणे आणि गोलाकार सममिती असलेल्या फंक्शनसह उलगडणे.

नंतरचा आलेख एका खंडाला मर्यादित करतो आणि दंडगोलाकार बॉक्ससारखा दिसतो.

म्हणून, सरतेशेवटी, आपल्याला गोलाकार सममिती असलेले कार्य मिळते, जसे ते असावे:

आम्ही ते पाहतो कमी वारंवारताथकबाकी असताना पास उच्च वारंवारतामोठेपणा कमी होणे, हे अंदाजे वरील फ्रिक्वेन्सीवर विशेषतः लक्षात येते. पण - वैशिष्ट्यपूर्ण आकार मूळ कार्यबिंदू विखुरणे, म्हणून, पेक्षा मोठे मूल्यअस्पष्ट, दाबलेली वारंवारता कमी. हे अवकाशीय आणि वारंवारता डोमेनमधील स्केलमधील बदलांमधील व्यस्त संबंधाचे उदाहरण आहे. खरं तर, जर स्पॉटची वैशिष्ट्यपूर्ण त्रिज्या आहे अवकाशीय क्षेत्र, परिवर्तनानंतर त्याचा आकार आहे, नंतर ते स्थिर मूल्य आहे.

प्रतिमा अस्पष्ट करण्याचा एक मार्ग म्हणजे ती डीफोकस करणे (आकृती 6.1). या प्रकरणात, पॉइंट स्प्रेड फंक्शन एक लहान दंडगोलाकार बॉक्स आहे, ज्याला आपण लेन्समधून जाणाऱ्या किरणांच्या शंकूचा विचार केल्यास, शिरोबिंदू केंद्रस्थानी आहे. (हा बिंदू इमेज प्लेनशी संबंधित नाही, परंतु त्याच्या समोर किंवा मागे काहीसा स्थित आहे.) इमेज प्लेन या शंकूला वर्तुळात छेदतो. त्याच्या आत, ब्राइटनेस स्थिर आहे (चित्र 6.8), आणि म्हणून, आपल्याकडे आहे

येथे लेन्सचा व्यास कुठे आहे; - लेन्सपासून अचूक फोकसिंग पॉईंटपर्यंतचे अंतर, - इमेज प्लेनचे विस्थापन. आपण हँकेल ट्रान्सफॉर्म लागू करू शकतो आणि सूत्र मिळवू शकतो

ज्यासाठी पूर्वी नमूद केलेला संबंध वापरला जातो

या प्रकरणात, पुन्हा, कमी फ्रिक्वेन्सी मुक्तपणे पास होतात आणि वरचे मोठेपणामध्ये कापले जातात आणि काही अजिबात प्रसारित होत नाहीत. फंक्शनमध्ये शून्याच्या आसपास चढ-उतार होत असल्याने इतर उलटे असतात. ज्या फ्रिक्वेन्सीजसाठी आपण पाहतो त्याप्रमाणे, डिफोकस केलेल्या प्रतिमेचे हलके भाग आदर्श प्रतिमेच्या गडद भागांशी जुळतात आणि त्याउलट. फ्रिक्वेन्सीसह प्रतिमेचे घटक ज्यासाठी ते पूर्णपणे रद्द केले जातात. डिफोकस केलेल्या प्रतिमेतून अशा घटकांची पुनर्रचना केली जाऊ शकत नाही. वर नमूद केल्याप्रमाणे, फंक्शनचे पहिले शून्य येथे दिसते. आम्ही पुन्हा अवकाशीय आणि वारंवारता डोमेनमधील व्यस्त संबंध पाहतो, कारण आमच्याकडे आता आहे. मोठी त्रिज्या defocusing, कमी वारंवारता जेथे k पूर्णांक आहे, पूर्णपणे दाबली जाते. ज्या सिग्नलचे वेव्ह क्रेस्ट हालचालीच्या दिशेला समांतर असतात ते नैसर्गिकरित्या अपरिवर्तित राहतात.

विकृत प्रतिमा पुनर्संचयित करणे सर्वात मनोरंजक आहे आणि महत्वाचे मुद्देप्रतिमा प्रक्रिया समस्यांमध्ये - सैद्धांतिक आणि व्यावहारिक दोन्ही दृष्टिकोनातून. चुकीच्या फोकस आणि स्मीअरिंगमुळे विशेष प्रकरणे अस्पष्ट आहेत - हे दोष, ज्यांच्याशी तुम्ही प्रत्येकजण परिचित आहात, ते दुरुस्त करणे खूप कठीण आहे - ते लेखाचा विषय म्हणून निवडलेले आहेत. मानवतेने इतर विकृतींना (आवाज, चुकीचे प्रदर्शन, विकृती) प्रभावीपणे सामोरे जाण्यास शिकले आहे आणि प्रत्येक स्वाभिमानी फोटो संपादकाकडे योग्य साधने आहेत.

अस्पष्टता आणि डिफोकस दूर करण्यासाठी व्यावहारिकदृष्ट्या काहीही का नाही (अनशार्प मास्क मोजत नाही) - कदाचित हे तत्त्वतः अशक्य आहे? खरं तर, हे शक्य आहे - संबंधित गणिती उपकरणे सुमारे 70 वर्षांपूर्वी विकसित होऊ लागली, परंतु, इतर अनेक प्रतिमा प्रक्रिया अल्गोरिदमप्रमाणे, हे सर्व आढळले. विस्तृत अनुप्रयोगनुकतेच. वाह प्रभाव दाखवण्यासाठी येथे काही चित्रे आहेत:

मी छळलेल्या लीनाचा वापर केला नाही, परंतु माझा व्हेनिसचा फोटो सापडला. 48-बिट फॉरमॅट सारख्या युक्त्या न वापरता उजवी प्रतिमा प्रामाणिकपणे डावीकडून मिळवली गेली (या प्रकरणात 100% पुनर्संचयित होईल मूळ प्रतिमा) – डावीकडे सर्वात सामान्य PNG आहे, कृत्रिमरित्या अस्पष्ट. परिणाम प्रभावी आहे... परंतु सराव मध्ये ते इतके सोपे नाही. कट अंतर्गत तपशीलवार पुनरावलोकनसिद्धांत आणि व्यावहारिक परिणाम.
सावधगिरी बाळगा, पीएनजी स्वरूपात अनेक प्रतिमा आहेत!

परिचय

चला दुरून सुरुवात करूया. पुष्कळ लोकांचा असा विश्वास आहे की अस्पष्टता एक अपरिवर्तनीय ऑपरेशन आहे आणि माहिती अपरिवर्तनीयपणे गमावली जाते, कारण... प्रत्येक पिक्सेल एका स्पॉटमध्ये बदलतो, सर्व काही मिसळले जाते आणि मोठ्या अस्पष्ट त्रिज्यासह आम्हाला मिळेल एकसमान रंगसंपूर्ण प्रतिमेत. हे पूर्णपणे सत्य नाही - सर्व माहिती फक्त काही कायद्यानुसार पुनर्वितरित केली जाते आणि काही आरक्षणांसह निःसंदिग्धपणे पुनर्संचयित केली जाऊ शकते. केवळ अपवाद म्हणजे अस्पष्ट त्रिज्याइतकी रुंदी असलेल्या प्रतिमेच्या कडा - जिथे पूर्ण पुनर्संचयित करणे अशक्य आहे.

एका-आयामी केससाठी एक लहान उदाहरण वापरून हे “हातावर” प्रदर्शित करू - कल्पना करा की आमच्याकडे मूल्यांसह पिक्सेलची पंक्ती आहे:
x 1 | x 2 | x 3 | x 4 … – मूळ प्रतिमा

विकृतीनंतर, प्रत्येक पिक्सेलचे मूल्य डावीकडील मूल्यासह एकत्रित केले जाते, म्हणजे. x’ i = x i + x i-1 . सिद्धांतानुसार, आम्हाला 2 ने भागणे देखील आवश्यक आहे, परंतु आम्ही हे साधेपणासाठी वगळू. परिणाम पिक्सेल मूल्यांसह एक अस्पष्ट प्रतिमा आहे:
x 1 + x 0 | x 2 + x 1 | x 3 + x 2 | x 4 + x 3 … – अस्पष्ट प्रतिमा

आता आम्ही पुनर्संचयित करण्याचा प्रयत्न करू, स्कीमनुसार साखळीसह क्रमशः मूल्ये वजा करू - दुसऱ्या पिक्सेलमधून प्रथम, तिसऱ्यापासून दुसऱ्याचा निकाल, चौथ्यापासून तिसऱ्याचा निकाल आणि असेच, आम्हाला मिळते:
x 1 + x 0 | x 2 - x 0 | x 3 + x 0 | x 4 - x 0 … – पुनर्संचयित प्रतिमा

परिणामी, त्याऐवजी अस्पष्ट प्रतिमामूळ प्रतिमा प्राप्त झाली, ज्याच्या पिक्सेलमध्ये पर्यायी चिन्हासह अज्ञात स्थिरांक x 0 जोडला गेला. हे आधीच बरेच चांगले आहे - हे स्थिरांक दृश्यमानपणे निवडले जाऊ शकते, आम्ही असे गृहीत धरू शकतो की ते अंदाजे x 1 मूल्याच्या समान आहे, ते स्वयंचलितपणे अशा निकषाने निवडले जाऊ शकते की शेजारच्या पिक्सेलची मूल्ये "उडी" कमी होतील. शक्य, इ. परंतु आम्ही आवाज जोडताच सर्वकाही बदलते (जे नेहमी वास्तविक प्रतिमांमध्ये असते). वर्णन केलेल्या योजनेसह, प्रत्येक टप्प्यावर एकूण घटकामध्ये आवाजाचे योगदान जमा होईल, जे शेवटी पूर्णपणे अस्वीकार्य परिणाम देऊ शकते, परंतु, जसे आपण पाहिले आहे, अशा आदिम मार्गाने देखील पुनर्संचयित करणे शक्य आहे.

विकृती प्रक्रिया मॉडेल

आता अधिक औपचारिकतेकडे वळूया आणि वैज्ञानिक वर्णनविकृती आणि जीर्णोद्धार या प्रक्रिया. आम्ही फक्त हाफटोनचा विचार करू काळ्या आणि पांढर्या प्रतिमापूर्ण-रंगीत प्रतिमेवर प्रक्रिया करण्यासाठी सर्वकाही पुनरावृत्ती करणे पुरेसे आहे असे गृहीत धरून आवश्यक पावलेप्रत्येकासाठी रंगीत चॅनेल RGB. चला खालील नोटेशन सादर करूया:
f(x, y)- मूळ अविकृत प्रतिमा
h(x, y)- विरूपण कार्य
n(x, y)- जोडणारा आवाज
g(x, y)- विकृतीचा परिणाम, म्हणजे आम्ही परिणाम म्हणून काय पाहतो (अस्पष्ट किंवा फोकस प्रतिमा बाहेर)

खालीलप्रमाणे विकृती प्रक्रियेचे मॉडेल तयार करूया:
g(x, y) = h(x, y) * f(x, y) + n(x, y) (1)

विकृत प्रतिमेची पुनर्रचना करण्याची समस्या म्हणजे सर्वोत्तम अंदाजे शोधणे f"(x, y)मूळ प्रतिमा. चला प्रत्येक घटक अधिक तपशीलवार पाहू. सह f(x, y)आणि g(x, y)सर्व काही अगदी स्पष्ट आहे. पण फंक्शन बद्दल h(x, y) तुम्हाला काही शब्द बोलायचे आहेत - ते काय आहे? विरूपण प्रक्रियेदरम्यान, मूळ प्रतिमेचा प्रत्येक पिक्सेल डीफोकसच्या बाबतीत एका स्पॉटमध्ये आणि साध्या अस्पष्टतेच्या बाबतीत एका विभागात बदलतो. किंवा आपण उलट म्हणू शकतो: विकृत प्रतिमेचा प्रत्येक पिक्सेल मूळ प्रतिमेच्या विशिष्ट शेजारच्या पिक्सेलमधून "एकत्रित" केला जातो. हे सर्व एकमेकांवर अधिरोपित केले जाते आणि परिणामी आपल्याला एक विकृत प्रतिमा मिळते. ज्या नियमानुसार एक पिक्सेल गाळला जातो किंवा गोळा केला जातो त्याला विरूपण कार्य म्हणतात. इतर समानार्थी शब्द म्हणजे PSF (पॉइंट स्प्रेड फंक्शन, म्हणजे पॉइंट डिस्ट्रिब्युशन फंक्शन), डिस्टॉर्शन ऑपरेटर कर्नल, कर्नल आणि इतर. या फंक्शनचे परिमाण, नियमानुसार, प्रतिमेच्या परिमाणापेक्षा कमी आहे - उदाहरणार्थ, "बोटांवर" उदाहरणाच्या प्रारंभिक विचारात, फंक्शनचे परिमाण 2 होते, कारण प्रत्येक पिक्सेल दोन बनलेले होते.

कार्ये विकृत करणे

विशिष्ट विकृत कार्ये कशी दिसतात ते पाहूया. यापुढे, आम्ही अशा हेतूंसाठी आधीच मानक बनलेले एक साधन वापरू - मॅटलॅबमध्ये प्रतिमा प्रक्रियेसह (आणि केवळ नाही) विविध प्रयोगांसाठी आवश्यक असलेली प्रत्येक गोष्ट समाविष्ट आहे आणि आपल्याला स्वतःच अल्गोरिदमवर लक्ष केंद्रित करण्यास अनुमती देते. नियमित कामलायब्ररी कार्य करण्यासाठी. तथापि, हे कामगिरीच्या किंमतीवर येते. तर, PSF वर परत, त्यांच्या प्रकाराची उदाहरणे येथे आहेत:


फंक्शन fspecial("गॉसियन", 30, 8) सह गॉसियन ब्लरच्या बाबतीत PSF;


फंक्शन fspecial("motion", 40, 45) सह अस्पष्टतेच्या बाबतीत PSF;

विकृत फंक्शन दुसऱ्या फंक्शनवर (या प्रकरणात प्रतिमेवर) लागू करण्याच्या ऑपरेशनला कॉन्व्होल्यूशन म्हणतात, म्हणजे. मूळ प्रतिमेचे काही क्षेत्र विकृत प्रतिमेच्या एका पिक्सेलमध्ये कोसळले आहे. "*" ऑपरेटरद्वारे दर्शविलेले, सामान्य गुणाकाराने गोंधळून जाऊ नये! प्रतिमेसाठी गणिती f M x N आणि विरूपण कार्यासह परिमाण h m x n च्या परिमाणांसह ते खालीलप्रमाणे लिहिले आहे:

कुठे a = (m - 1) / 2, b = (n – 1) / 2. कॉन्व्होल्यूशनच्या व्यस्त ऑपरेशनला डीकॉनव्होल्यूशन म्हणतात आणि अशा समस्येचे निराकरण फारच क्षुल्लक आहे.

आवाज मॉडेल

आवाजासाठी जबाबदार शेवटच्या पदाचा विचार करणे बाकी आहे, n(x, y)सूत्रात (1). डिजिटल सेन्सरमधील आवाजाची कारणे खूप भिन्न असू शकतात, परंतु मुख्य म्हणजे थर्मल चढउतार आणि गडद प्रवाह. आयएसओ व्हॅल्यू, मॅट्रिक्स प्रकार, पिक्सेल आकार, तापमान, इलेक्ट्रोमॅग्नेटिक हस्तक्षेप इ. यासारख्या अनेक घटकांमुळे आवाजाचे प्रमाण देखील प्रभावित होते. बहुतेक प्रकरणांमध्ये, आवाज गॉसियन असतो (जो दोन पॅरामीटर्सद्वारे निर्दिष्ट केला जातो - सरासरी आणि भिन्नता) , आणि ते देखील मिश्रित आहे आणि प्रतिमेशी सहसंबंधित नाही आणि पिक्सेल निर्देशांकांवर अवलंबून नाही. शेवटच्या तीन गृहीतके पुढील कामासाठी खूप महत्त्वाच्या आहेत.

कन्व्होल्युशन प्रमेय

आता आपण पुनर्रचना समस्येच्या मूळ फॉर्म्युलेशनकडे परत जाऊया - आवाज विसरून न जाता, आपल्याला कसा तरी उलटसुलट करणे आवश्यक आहे. सूत्र (2) वरून हे स्पष्ट आहे की आपल्याला मिळते f(x, y)पासून g(x, y)हे इतके सोपे नाही - जर तुम्ही ते सोडवले तर, "हेड-ऑन" असे सांगायचे तर, तुमच्या समीकरणांची एक मोठी प्रणाली असेल. परंतु फूरियर ट्रान्सफॉर्म आमच्या मदतीसाठी येतो; आम्ही या विषयावर आधीच बरेच काही सांगितले आहे. तर, एक कन्व्होल्यूशन प्रमेय आहे, ज्यामध्ये असे म्हटले आहे की स्थानिक डोमेनमधील कॉन्व्होल्यूशन ऑपरेशन सामान्य गुणाकाराच्या समतुल्य आहे वारंवारता डोमेन(आणि गुणाकार घटकानुसार आहे, मॅट्रिक्स नाही). त्यानुसार, कंव्होल्युशनचे व्यस्त ऑपरेशन फ्रिक्वेन्सी डोमेनमधील विभागणीच्या समतुल्य आहे, म्हणजे ते असे लिहिले जाऊ शकते:
(3)

कुठे H(u, v), F(u, v)- संबंधित फंक्शन्सच्या फोरियर प्रतिमा. याचा अर्थ असा की फॉर्म्युला (1) मधील विकृती प्रक्रिया वारंवारता डोमेनमध्ये पुन्हा लिहिली जाऊ शकते:
(4)

उलट फिल्टरिंग

ते ताबडतोब विभागले जाण्याची विनंती करते H(u, v)आणि खालील गुण मिळवा F^(u,v)मूळ प्रतिमा:
(5)
याला इन्व्हर्स फिल्टरिंग म्हणतात, परंतु सराव मध्ये ते कधीही कार्य करत नाही. का? या प्रश्नाचे उत्तर देण्यासाठी, सूत्र (५) मधील शेवटची संज्ञा पाहू - जर फंक्शन H(u, v)शून्य किंवा शून्याच्या जवळ मूल्य घेते, नंतर या संज्ञेचे योगदान प्रबळ असेल. हे जवळजवळ नेहमीच मध्ये उद्भवते वास्तविक उदाहरणे- हे स्पष्ट करण्यासाठी, फूरियर ट्रान्सफॉर्म नंतर स्पेक्ट्रम कसा दिसतो हे लक्षात ठेवूया.
आम्ही मूळ प्रतिमा घेतो,

चला ते ग्रेस्केलमध्ये रूपांतरित करू आणि मॅटलॅब वापरून स्पेक्ट्रम मिळवा:

% लोड प्रतिमा I = imread("image_src.png"); आकृती(1); imshow(I); शीर्षक ("मूळ प्रतिमा"); % प्रतिमा रूपांतरित कराग्रेस्केल मध्ये I = rgb2gray(I); % कम्प्युट फोरियर ट्रान्सफॉर्म आणि मध्यभागी ठेवा fftRes = fftshift(fft2(I)); % परिणाम आकृती दाखवा(2); imshow(mat2gray(log(1+abs(fftRes)))); शीर्षक("FFT - मोठेपणा स्पेक्ट्रम (लोगॅरिथमिक स्केल)"); आकृती(3); imshow(mat2gray(कोन(fftRes))); शीर्षक ("FFT - फेज स्पेक्ट्रम");

परिणामी, आम्हाला दोन घटक मिळतात: मोठेपणा आणि फेज स्पेक्ट्रा. तसे, बरेच लोक टप्प्याबद्दल विसरतात. कृपया लक्षात घ्या की मोठेपणा स्पेक्ट्रम लॉगरिदमिक स्केलवर दर्शविला जातो, कारण त्याची मूल्ये मोठ्या प्रमाणात बदलतात - मध्यभागी, परिमाणांच्या अनेक ऑर्डरद्वारे कमाल मूल्ये(लाखो क्रमाने) आणि ते केंद्रापासून दूर गेल्यावर जवळजवळ शून्यावर कमी होतात. यामुळेच व्यस्त फिल्टरिंग केवळ शून्य किंवा जवळजवळ शून्य आवाज मूल्यांवर कार्य करेल. खालील स्क्रिप्ट वापरून हे सरावाने दाखवूया:
% लोड प्रतिमा I = im2double(imread("image_src.png")); आकृती(1); imshow(I); शीर्षक ("मूळ प्रतिमा"); % अस्पष्ट प्रतिमा अस्पष्ट = imfilter(I, PSF,"परिपत्रक","conv"); आकृती(2); imshow(अस्पष्ट); शीर्षक("अस्पष्ट प्रतिमा"); % जोडा noise_mean = 0; noise_var = 0.0; अस्पष्ट = imnoise(अस्पष्ट, "गॉसियन", noise_mean, noise_var); % डीकॉनव्होल्यूशन आकृती(3); imshow(deconvwnr(अस्पष्ट, PSF, 0)); शीर्षक ("परिणाम");


noise_var = 0.0000001 noise_var = 0.000005
हे स्पष्टपणे पाहिले जाऊ शकते की अगदी कमी आवाज जोडल्याने लक्षणीय हस्तक्षेप होतो, जे मोठ्या प्रमाणात मर्यादित करते व्यावहारिक अनुप्रयोगपद्धत

डिकॉनव्होल्यूशनसाठी विद्यमान दृष्टिकोन

परंतु असे पध्दत आहेत जे प्रतिमेतील आवाजाची उपस्थिती विचारात घेतात - सर्वात प्रसिद्ध आणि सर्वात पहिले म्हणजे वीनर फिल्टर. तो प्रतिमा आणि आवाज मानतो यादृच्छिक प्रक्रियाआणि असा अंदाज शोधतो f"विकृत प्रतिमेसाठी fजेणेकरून या मूल्यांचे मानक विचलन किमान असेल. फ्रिक्वेन्सी डोमेनमधील फंक्शनद्वारे हे विचलन किमान साध्य केले जाते:
(6)
हा निकाल 1942 मध्ये वीनरने मिळवला होता. आम्ही येथे तपशीलवार निष्कर्ष प्रदान करणार नाही; ज्यांना स्वारस्य आहे ते पाहू शकतात. येथे S हे फंक्शन अनुक्रमे आवाजाचा उर्जा स्पेक्ट्रा आणि मूळ प्रतिमा दर्शविते - हे प्रमाण क्वचितच ओळखले जात असल्याने, S n / S f हा अंश एका विशिष्ट स्थिर K ने बदलला जातो, ज्याचे अंदाजे सिग्नल-टू म्हणून वर्णन केले जाऊ शकते. - आवाजाचे प्रमाण.

पुढील पद्धत म्हणजे “कनेक्शनसह फिल्टरिंग कमीत कमी स्क्वेअर गुळगुळीत करणे”, इतर नावे: “टिखोनोव्ह फिल्टरिंग”, “टिखोनोव्ह नियमितीकरण”. सोबत मॅट्रिक्स स्वरूपात समस्या तयार करण्याची त्याची कल्पना आहे पुढील निर्णयसंबंधित ऑप्टिमायझेशन समस्या. हे समाधान असे लिहिले आहे:
(7)
कुठे yनियमितीकरण पॅरामीटर आहे, आणि P(u, v)- लॅपेस ऑपरेटरचे फूरियर ट्रान्सफॉर्म (3 * 3 मॅट्रिक्स).

आणखी एक मनोरंजक दृष्टीकोन रिचर्डसन आणि लुसी यांनी स्वतंत्रपणे प्रस्तावित केला होता. या पद्धतीला "लुसी-रिचर्डसन पद्धत" असे म्हणतात. त्याच्या विशिष्ट वैशिष्ट्यत्यात ते अरेखीय आहे, पहिल्या तीनपेक्षा वेगळे - जे संभाव्यपणे देऊ शकते सर्वोत्तम परिणाम. दुसरे वैशिष्ट्य म्हणजे ही पद्धत पुनरावृत्तीची आहे; मूळ कल्पना जास्तीत जास्त संभाव्यता पद्धत वापरणे आहे, जी प्रतिमा पॉसॉन वितरणाचे अनुसरण करते असे गृहीत धरते. फुरियर ट्रान्सफॉर्म न वापरता गणनाची सूत्रे अगदी सोपी आहेत - सर्व काही स्थानिक डोमेनमध्ये केले जाते:
(8)
येथे, "*" चिन्ह, पूर्वीप्रमाणे, convolution ऑपरेशन दर्शवते. ही पद्धत खगोलशास्त्रीय छायाचित्रांवर प्रक्रिया करण्यासाठी प्रोग्राम्समध्ये मोठ्या प्रमाणावर वापरली जाते - त्यामध्ये, डीकॉनव्होल्यूशनचा वापर (फोटो एडिटर प्रमाणे अनशार्प मास्कऐवजी) एक वास्तविक मानक आहे. ॲस्ट्रा इमेजचे उदाहरण आहे, येथे डीकॉनव्होल्यूशनची उदाहरणे आहेत. पद्धतीची संगणकीय जटिलता खूप मोठी आहे - पुनरावृत्तीच्या संख्येनुसार सरासरी छायाचित्रावर प्रक्रिया करण्यासाठी बरेच तास आणि दिवस लागू शकतात.

विचाराधीन शेवटची पद्धत, किंवा त्याऐवजी आता सक्रियपणे विकसित आणि विकसित केलेल्या पद्धतींचे संपूर्ण कुटुंब, अंध विघटन आहे. मागील सर्व पद्धतींमध्ये असे गृहित धरले गेले होते की विकृती कार्य पीएसएफ तंतोतंत ओळखले जाते, प्रत्यक्षात असे नाही सामान्यतः पीएसएफ केवळ दृश्यमान विकृतींच्या स्वरूपाद्वारे ओळखले जाते; ब्लाइंड डिकॉनव्होल्यूशन हा हे लक्षात घेण्याचा प्रयत्न आहे. तत्त्व अगदी सोपे आहे, आपण तपशीलांमध्ये न गेल्यास - पीएसएफचे प्रथम अंदाजे निवडले जातात, नंतर एका पद्धतीचा वापर करून डीकॉनव्होल्यूशन केले जाते, त्यानंतर गुणवत्तेची डिग्री काही निकषांद्वारे निर्धारित केली जाते, त्यावर आधारित पीएसएफ फंक्शन परिष्कृत केले जाते आणि इच्छित परिणाम प्राप्त होईपर्यंत पुनरावृत्ती पुनरावृत्ती होते.

सराव करा

आता हे सर्व सिद्धांतासह आहे - चला सरावाकडे वळू या, कृत्रिम अस्पष्टता आणि आवाजासह प्रतिमेवरील सूचीबद्ध पद्धतींची तुलना करून प्रारंभ करूया.


% लोड प्रतिमा I = im2double(imread("image_src.png")); आकृती(1); imshow(I); शीर्षक ("मूळ प्रतिमा"); % ब्लर इमेज PSF = fspecial("डिस्क", 15); अस्पष्ट = imfilter(I, PSF,"परिपत्रक","conv"); % जोडा noise_mean = 0; noise_var = 0.00001; अस्पष्ट = imnoise(अस्पष्ट, "गॉसियन", noise_mean, noise_var); आकृती(2); imshow(अस्पष्ट); शीर्षक("अस्पष्ट प्रतिमा"); अंदाजित_nsr = noise_var / var(अस्पष्ट(:)); % पुनर्संचयित प्रतिमा आकृती(3), imshow(deconvwnr(अस्पष्ट, PSF, अनुमानित_nsr)), शीर्षक("वीनर"); आकृती(4); imshow(deconvreg(अस्पष्ट, PSF)); शीर्षक ("रेगुल"); आकृती(5); imshow(deconvblind(अस्पष्ट, PSF, 100)); शीर्षक ("अंध"); आकृती(6); imshow(deconvlucy(अस्पष्ट, PSF, 100)); शीर्षक ("लुसी");
परिणाम:


वीनर फिल्टर


टिखोनोव्हच्या मते नियमितीकरण


लुसी-रिचर्डसन फिल्टर


आंधळे विघटन

निष्कर्ष

आणि पहिल्या भागाच्या शेवटी, आम्ही वास्तविक प्रतिमांच्या उदाहरणांवर थोडेसे स्पर्श करू. या आधी, सर्व विकृती कृत्रिम होत्या, जे चाचणी आणि अभ्यासासाठी नक्कीच चांगले आहे, परंतु हे सर्व वास्तविक छायाचित्रांसह कसे कार्य करेल हे पाहणे खूप मनोरंजक आहे. मॅन्युअल फोकस शिफ्टसह Canon 500D DSLR सह घेतलेल्या अशा प्रतिमेचे येथे एक उदाहरण आहे:

% लोड प्रतिमा I = im2double(imread("IMG_REAL.PNG")); आकृती(1); imshow(I); शीर्षक ("मूळ प्रतिमा"); %PSF PSF = fspecial("डिस्क", 8); noise_mean = 0; noise_var = 0.0001; अंदाजित_nsr = noise_var / var(I(:)); I = edgetaper(I, PSF); आकृती(2); imshow(deconvwnr(I, PSF, अनुमानित_nsr)); शीर्षक ("परिणाम");
आणि आम्हाला खालील परिणाम मिळतात:

जसे आपण पाहू शकता, प्रतिमेमध्ये नवीन तपशील दिसू लागले आहेत, स्पष्टता खूप जास्त झाली आहे, जरी विरोधाभासी कडांवर "रिंगिंग" स्वरूपात आवाज देखील दिसू लागला आहे.

आणि वास्तविक अस्पष्टतेचे उदाहरण - ते अंमलात आणण्यासाठी, कॅमेरा ट्रायपॉडवर बसविला गेला, तुलनेने लांब शटर गती सेट केली गेली आणि शटर सोडल्याच्या क्षणी एकसमान हालचालीसह अस्पष्टता प्राप्त झाली:

स्क्रिप्ट अंदाजे समान आहे, फक्त PSF प्रकार आता "मोशन" आहे:

% लोड प्रतिमा I = im2double(imread("IMG_REAL_motion_blur.PNG")); आकृती(1); imshow(I); शीर्षक ("मूळ प्रतिमा"); %PSF PSF = fspecial("गती", 14, 0); noise_mean = 0; noise_var = 0.0001; अंदाजित_nsr = noise_var / var(I(:)); I = edgetaper(I, PSF); आकृती(2); imshow(deconvwnr(I, PSF, अनुमानित_nsr)); शीर्षक ("परिणाम");
परिणाम:

गुणवत्ता, पुन्हा, लक्षणीय सुधारली आहे - खिडक्या आणि कारवरील फ्रेम दृश्यमान झाल्या आहेत. डिफोकसिंगसह मागील उदाहरणापेक्षा आर्टिफॅक्ट्स आधीपासूनच भिन्न आहेत.

या मनोरंजक गोष्टीसह पहिला भाग पूर्ण करूया.
दुसऱ्या भागात, मी वास्तविक प्रतिमांवर प्रक्रिया करण्याच्या समस्यांवर लक्ष केंद्रित करेन - PSF तयार करणे आणि त्यांचे मूल्यमापन करणे, अधिक जटिल आणि प्रगत डीकॉनव्होल्यूशन तंत्र, रिंगिंग, पुनरावलोकन आणि विद्यमान सॉफ्टवेअरची तुलना करणे इत्यादी दोष दूर करण्याच्या पद्धतींचा विचार करेन.



आम्ही वाचण्याची शिफारस करतो

वर