जैसा कि अन्य उत्तरों में उल्लेख किया गया है, विवर्तन ने अनिश्चितता पैदा की है। परीक्षण के लिए इसे रखने के लिए, कोई एफ फैल या 29 के अनुरूप बिंदु प्रसार फ़ंक्शन का उपयोग करके छवि को तेज करने का प्रयास कर सकता है। विवर्तन के लिए, हमारे पास (एक समग्र सामान्यीकरण तक)
P (s) = {J 1 [s rs / ( λF )] / [π rs / ( λF )]} 2
जहां जम्मू 1 है क्रम 1 की पहली तरह का Bessel समारोह ,
रों छवि पिक्सेल में मापा जाता में दूरी है,
आर , - (फसल सेंसरों के लिए 6) मीटर आम तौर पर 4.2 के बारे में * 10 ^ () एक पिक्सेल के आकार है
λ प्रकाश की तरंग दैर्ध्य है, और
एफ एफ-संख्या, इस मामले में 29।
यह मोनोक्रोमैटिक प्रकाश के लिए सच है, रंग चैनलों के लिए बिंदु प्रसार फ़ंक्शन को अनुमानित करने के लिए हम कुछ उपयुक्त रेंज के तरंग दैर्ध्य पर औसत कर सकते हैं। इसके अलावा, किसी को पी द्वारा निर्दिष्ट पिक्सेल के क्षेत्र पर पी (एस) को एकीकृत करना चाहिए।
यदि हम 3 रंग चैनलों के लिए 3 बिंदु प्रसार कार्यों को संकलित करते हैं, तो हम छवि को रैखिक रंग स्थान में परिवर्तित करके और डीकोवोल्यूशन एल्गोरिथ्म को लागू करके और फिर sRGB में बदल सकते हैं। मुझे निम्नलिखित परिणाम मिला:
इसलिए केवल एफ-नंबर के बारे में डेटा और पिक्सेल के आकार के बारे में धारणा का उपयोग करके चेहरे को काफी तेज कर दिया गया है। छवि के अंधेरे हिस्से में बैंडिंग कलाकृतियां दिखाई देती हैं, यह एसआरजीबी में वापस बदलने के बाद पोस्टरकरण के कारण है।
अनुरोध के अनुसार, मैं इस्तेमाल किए गए कार्यक्रमों पर कुछ और विवरण जोड़ूंगा। मैंने ImageJ और ImageMagick का उपयोग किया , मैंने बिंदु प्रसार फ़ंक्शन की गणना करने के लिए Mathematica का भी उपयोग किया, लेकिन यह ImageJ से भी किया जा सकता है। जब मैं पहले से ही बिंदु प्रसार कार्य करता हूं, तो मैं ImageJ के साथ कैसे विघटन करता हूं, यह समझाकर शुरू करता हूं। Deconvolution करने के लिए, आपको ImageJ के लिए एक प्लगइन स्थापित करने की आवश्यकता है, मैंने इस प्लगइन का उपयोग इस मामले के लिए किया है, लेकिन DeconvolutionLab प्लगइन जैसे अन्य प्लगइन्स उपलब्ध भी हैं ।
सबसे पहले, आपको रैखिक रंग स्थान में बदलने की आवश्यकता है, मैंने कमांड का उपयोग करके छविहरग छवि को अनचाही छवि (इनपुट.जेपीजी) को रैखिक रंग स्थान में बदलने के लिए उपयोग किया है:
convert input.jpg -colorspace RGB output.tif
तब ImageJ के साथ, आप फिर फ़ाइल output.tif खोलें। फिर, मेनू विकल्पों में से, आप "छवि" फिर "रंग" और फिर "थूक चैनल" चुनें। फिर मेनू से "प्लगइन्स" का चयन करें और फिर "समानांतर पुनरावृत्ति deconvolution" और फिर 2d इंटरएक्टिव डिकॉन्वॉल्यूशन "।
फिर आपको डिकॉन्वॉल्यूशन विंडो मिलती है, फिर आप इमेज को सेलेक्ट करते हैं और "PSF" का मतलब होता है पॉइंट फैक्यूशन, वहां आप उस इमेज फाइल को सेलेक्ट करें जिसमें पॉइंट स्प्रेड फंक्शन हो। विधि के लिए, मैं "डब्ल्यूपीएल" चुनता हूं जो कि वीनर फिल्टर पर आधारित है, जो आमतौर पर कम शोर वाली छवियों के लिए यथोचित काम करता है। डब्ल्यूपीएल के लिए विकल्पों में, "पीएसएफ को सामान्य करें" की जांच करें, और कम पास फिल्टर के लिए मान को 0.2 तक बदल दें, डिफ़ॉल्ट रूप से यह 1 है, लेकिन कम शोर वाले चित्रों के लिए कम मूल्य बेहतर है (यदि आप इसे बड़ा चुनते हैं, तो आप ' एक छवि प्राप्त करेंगे जो कम तेज है)। अन्य विकल्प, सीमा को रिफ्लेक्सिव चुना जा सकता है, आकार "2 की अगली शक्ति" पर सेट किया जा सकता है, आउटपुट को 32 बिट में सेट किया जा सकता है, सटीक को दोगुना करने के लिए सेट किया जा सकता है। मैंने अधिकतम संख्या में पुनरावृत्तियों की संख्या को 15 चुना,
आप फिर "डीकोनवोल्व" पर क्लिक करके प्रोग्राम चलाते हैं। फिर आपको आउटपुट के रूप में एक 32 बिट छवि फ़ाइल मिलती है। आमतौर पर, पिक्सेल मूल्य काफी हद तक मूल तस्वीर के समान होते हैं, लेकिन आपके पास कुछ ऐसे पिक्सेल हो सकते हैं जो मूल छवि प्रारूप के लिए अधिकतम हो। तो, इस मामले में हमने 8 बिट चित्रों के साथ शुरुआत की, लेकिन डिकॉन्वॉल्व्ड छवि में, आपके पास ग्रे मान हो सकते हैं जो 255 से अधिक हो जाते हैं, जिसके कारण पूरी छवि बहुत अधिक अंधेरा हो जाती है। यह इन पिक्सेल को 255 पर क्लिप करके तय किया जाना चाहिए, जिसे आप मेनू "प्रक्रिया" और फिर "मैथ" और फिर "मैक्स" का चयन करके कर सकते हैं। फिर अधिकतम मूल्य का उपयोग उस मूल्य से अधिक ग्रे मानों को क्लिप करने के लिए किया जाएगा। ध्यान दें कि यह उस छवि पर किया जाएगा जिसे आपने अंतिम बार क्लिक किया था। आप यह भी देख सकते हैं कि कौन सी फाइल "चालू फाइल" है जिसे चुनकर "
फिर एक बार जब आप 3 रंग घटकों को हटा देते हैं, तो आप उन्हें "छवि" मेनू में, फिर "रंग" और फिर "मर्ज चैनल" का चयन करके जोड़ सकते हैं। फिर आपको एक समग्र छवि मिलती है जिसे आप "स्टैक टू आरजीबी" कमांड का उपयोग करके 8 बिट आरजीबी में बदल सकते हैं।
फिर आप उस इमेज को सेव करते हैं, आइए इसे im.tif कहते हैं। अंत में, आपको इसे sRGB में बदलना होगा, आप कमांड का उपयोग करके ImageMagick के साथ कर सकते हैं:
convert im.tif -set colorspace RGB -colorspace sRGB output.tif
शेष प्रश्न तो यह है कि बिंदु प्रसार फ़ंक्शन को कैसे प्राप्त किया जाए। व्यवहार में, यदि आपने यहाँ चर्चा के तहत एक की तरह एक तस्वीर ली थी, तो आप बस एक बिंदु स्रोत की तस्वीर ले सकते थे, उदाहरण के लिए एफ / 29 पर एक स्टार और इसका उपयोग आपके बिंदु प्रसार फ़ंक्शन के रूप में किया। वैकल्पिक रूप से, आप उच्च विपरीत सीमाओं को देख सकते हैं और जिस तरह से ग्रे मान एक सीमा से दूसरे में सीमा पार करते हैं, उससे बिंदु प्रसार फ़ंक्शन को निकाल सकते हैं। लेकिन तब आप छवि को जितना हो सके उतना तेज करने की कोशिश कर रहे हैं।
इस मामले में उद्देश्य रंग चैनल के लिए बिंदु प्रसार कार्यों को संकलित करना था, जिसके आधार पर आप यह उम्मीद करेंगे कि यह एफ / 29 के लिए हो, उस के साथ छवि को विघटित करें और देखें कि क्या परिणाम काफी बेहतर हुआ है। मैंने कुछ गणनाएँ करने के लिए मैथेमेटिका का उपयोग किया और जो इस तरह का एक उन्नत कंप्यूटर बीजगणित कार्यक्रम है, जिसमें एक तरंग दैर्ध्य अंतराल पर औसत और पीएसएफ को अधिक यथार्थवादी बनाने के लिए पिक्सेल क्षेत्रों पर एकीकरण सहित सभी प्रकार के जोड़तोड़ करना काफी आसान है।
लेकिन ImageJ आपको एक नई छवि बनाने की भी अनुमति देता है जिसे आप बिंदु प्रसार फ़ंक्शन के रूप में उपयोग कर सकते हैं। यदि आप "फाइल" पर क्लिक करते हैं और फिर "न्यू" आप आकार की एक 32 बिट छवि बना सकते हैं, कह सकते हैं, 64 बाय 64 ब्लैक से भरा हुआ है। फिर आप "प्रक्रिया", फिर "मैथ" और फिर "मैक्रो" का चयन करके ग्रे वैल्यू के लिए एक फॉर्मूला बना सकते हैं। इस मामले के लिए बिंदु प्रसार फ़ंक्शन प्राप्त करने के लिए जिसमें यहां बेसेल फ़ंक्शन शामिल है, आप इस तथ्य का उपयोग कर सकते हैं कि यह श्रृंखला विस्तार के पहले कुछ शब्दों द्वारा अच्छी तरह से वर्णित है। मैथवर्ल्ड पृष्ठ जिसे मैंने आपको इस श्रृंखला विस्तार से जोड़ा है, इसलिए, J 1 (x) 2 / x 2 को x = x rs / ( λF ) के साथ A + B s 2 + C 4 4 के रूप में बदला जा सकता है।। यदि बहुत बड़ा है तो यह सन्निकटन अमान्य हो जाएगा। अब, हम जानते हैं कि PSF शून्य पर जाता है, उदाहरण के लिए लगभग 5 या 6 पिक्सेल की दूरी पर इसे शून्य पर सेट किया जा सकता है। यह मानते हुए कि इन मूल्यों में बहुपद अभी भी छोटा है, आप मैक्रो को इस प्रकार लिख सकते हैं:
if(d<7) v = A + B * pow(d,2) + B * pow(d,4)
आप इसके लिए 3 इमेज बनाते हैं, कहते हैं, लैम्ब्डा = 650 एनएम, 500 एनएम और 400 एनएम, या जो भी अन्य मान आपको लगता है कि 3 रंग चैनलों में विवर्तन का प्रतिनिधित्व करने के लिए उपयुक्त है। फिर आप विभिन्न लैम्बडा के लिए चित्र बनाकर और फिर "प्रक्रिया", फिर "छवि कैलकुलेटर" का चयन करके कुछ अलग तरंग दैर्ध्य पर औसत कर सकते हैं, और वहां आप "ऐड" का चयन करें। फिर आप इस परिणाम में एक और छवि जोड़ सकते हैं और जब आप जोड़ रहे हैं, तो आप "प्रक्रिया", फिर "गणित" और फिर "विभाजन" का चयन करके औसत प्राप्त करने के लिए विभाजित कर सकते हैं।