छवियों को साफ करना एक मूल्यवान तकनीक है, चाहे वह आगे के विश्लेषण के लिए हो या केवल अपनी तस्वीरों को सर्वश्रेष्ठ दिखाने के लिए हो।
इमेज एन्हांसमेंट कंप्यूटर विज़न और इमेज एडिटिंग एप्लिकेशन के लिए एक महत्वपूर्ण टूल है। इसका उद्देश्य छवियों की गुणवत्ता में सुधार करना है।
छवि गुणवत्ता को बढ़ाकर, छवि विश्लेषण और प्रसंस्करण तकनीकों की सटीकता और विश्वसनीयता में काफी वृद्धि की जा सकती है। यह ऑब्जेक्ट डिटेक्शन, रिकग्निशन, सेगमेंटेशन और ट्रैकिंग एप्लिकेशन में विशेष रूप से महत्वपूर्ण है।
कम रोशनी की स्थिति, सेंसर शोर, मोशन ब्लर, या ट्रांसमिशन त्रुटियों जैसे कारकों ने छवि गुणवत्ता से समझौता किया है, जब छवि वृद्धि में मदद मिल सकती है।
अपने पर्यावरण की स्थापना
से शुरू एक पायथन पर्यावरण की स्थापना, फिर OpenCV लाइब्रेरी को स्थापित करने के लिए निम्न टर्मिनल कमांड चलाएँ। आप प्रारंभिक छवि को लोड करने और संसाधित करने के लिए और अंतिम उन्नत छवि को सहेजने के लिए OpenCV का उपयोग करेंगे।
पाइप ओपनसीवी-पायथन स्थापित करें
आप दो छवियों को प्रदर्शित करने के लिए Matplotlib का उपयोग करेंगे। इस आदेश का उपयोग करके इसे स्थापित करें:
पिप matplotlib स्थापित करें
अंत में, NumPy इंस्टॉल करें, जो आप करेंगे संख्यात्मक संचालन के लिए उपयोग करें गामा सुधार के लिए लुकअप टेबल बनाना और छवि को तेज करने के लिए कर्नेल को परिभाषित करना शामिल है:
पिप स्थापित numpy
एक बार जब आप इन पुस्तकालयों को अपने वातावरण में स्थापित कर लेते हैं, तो आप कोडिंग शुरू करने के लिए तैयार होते हैं।
इस डेमो के लिए पूर्ण स्रोत कोड a में उपलब्ध है गिटहब रिपॉजिटरी.
आवश्यक पुस्तकालयों का आयात करना
आपके द्वारा पहले अपने वातावरण में स्थापित पुस्तकालयों को आयात करें:
आयात cv2
आयात matplotlib.pyplot जैसा पठार
आयात Numpy जैसा एनपी
ध्यान दें कि आपको OpenCV को इस रूप में आयात करना चाहिए cv2. यह एक मानक अभ्यास है जिसका उद्देश्य कोड संगतता और अन्य डेवलपर्स के लिए समझने में आसानी सुनिश्चित करना है।
मूल छवि को लोड करना और प्रदर्शित करना
का उपयोग करके मूल छवि लोड करके प्रारंभ करें cv2.imread समारोह। यह वह इनपुट छवि है जिस पर आपका प्रोग्राम एन्हांसमेंट तकनीकों का प्रदर्शन करेगा। फिर उपयुक्त Matplotlib फ़ंक्शन का उपयोग करके इसे प्रदर्शित करें:
छवि = cv2.imread ('example.jpg')
plt.imshow (cv2.cvtColor (छवि, cv2.COLOR_BGR2RGB))
plt.शीर्षक ('मूल छवि')
plt.show ()
मूल छवि प्रदर्शित करने से आपको बाद में कार्यक्रम के परिणामों की तुलना करने में मदद मिलेगी:
उपरोक्त छवि कार्यक्रम का इनपुट होगी।
छवि में शोर कम करना
डीनोइज़िंग एक ऐसी तकनीक है जिसका उद्देश्य छवि में शोर-यादृच्छिक विकृतियों को कम करना है। इसका परिणाम एक चिकनी आउटपुट में होता है। OpenCV प्रदान करता है fastNl का अर्थ है रंगहीन करना इस उद्देश्य के लिए कार्य करें। छवि विवरण को संरक्षित करते समय शोर को दूर करने के लिए यह एक गैर-स्थानीय साधन एल्गोरिदम का उपयोग करता है।
# छवि संवर्द्धन लागू करें
# छवि को नकारें
denoised_image = cv2.fastNlMeansDenoisingColored (छवि, कोई नहीं, 10, 10, 7, 21)
fastNl का अर्थ है रंगहीन करना फ़ंक्शन छवि, फ़िल्टर शक्ति, टेम्पलेट विंडो आकार और खोज विंडो आकार सहित कई पैरामीटर लेता है। वांछित परिणाम प्राप्त करने के लिए आप विभिन्न मूल्यों के साथ प्रयोग कर सकते हैं।
विस्तार दृश्यता में सुधार करने के लिए खिंचाव कंट्रास्ट
कंट्रास्ट स्ट्रेचिंग को सामान्यीकरण के रूप में भी जाना जाता है। यह एक निश्चित सीमा तक विस्तार करने के लिए तीव्रता मूल्यों को फैलाता है। यह बदले में छवि में विवरण की दृश्यता में सुधार करता है।
आप OpenCV का उपयोग करके अस्वीकृत छवि के लिए कंट्रास्ट स्ट्रेचिंग लागू कर सकते हैं सामान्य समारोह:
# कंट्रास्ट स्ट्रेचिंग करें
कंट्रास्ट_स्ट्रेच्ड_इमेज = cv2.सामान्य करें (डीनोइज्ड_इमेज, कोई नहीं, 255, 0, cv2.NORM_MINMAX, cv2.CV_8UC1)
इमेज को कैसे शार्प करें
इमेज शार्पनिंग इमेज के किनारों और विवरणों को बढ़ाता है, जिससे इमेज के क्रिस्पनेस को बेहतर बनाने में मदद मिलती है।
# इमेज शार्पनिंग
गिरी = np.सरणी ([[0, -1, 0], [-1, 5, -1], [0, -1, 0]], एनपी.फ्लोट32)
Sharped_image = cv2.filter2D (contrast_stretched_image, -1, कर्नेल = कर्नेल)
उपरोक्त कोड एक कर्नेल मैट्रिक्स बनाता है जो छवि में किनारों और विवरण पर जोर देता है। cv2.filter2D फ़ंक्शन कर्नेल को कंट्रास्ट-स्ट्रेच्ड इमेज पर लागू करता है, परिणामस्वरूप इसे तेज करता है।
एक्सपोज़र को बेहतर बनाने के लिए ब्राइटनेस को एडजस्ट करें
चमक समायोजन एक छवि की समग्र चमक को नियंत्रित करता है। यह छवि को आकर्षक और अच्छी तरह से उजागर करने में मदद करता है।
# चमक समायोजन
ब्राइटनेस_इमेज = cv2.convertScaleAbs (sharpened_image, alpha=1, बीटा =5)
cv2.convertScaleAbs फ़ंक्शन छवि की चमक को समायोजित करता है। अल्फा पैरामीटर कंट्रास्ट को नियंत्रित करता है, जबकि बीटा पैरामीटर चमक को नियंत्रित करता है। बढ़ा रहा है बीटा मूल्य छवि की चमक को बढ़ाता है।
छवि को उज्ज्वल करने के लिए गामा सुधार लागू करें
चमक समायोजन तकनीक के बाद एक छवि बहुत उज्ज्वल दिखाई दे सकती है। गामा सुधार एक छवि की समग्र चमक और कंट्रास्ट को समायोजित करता है। यह उन छवियों को ठीक करता है जो बहुत गहरे या बहुत चमकीले दिखाई देते हैं।
# गामा सुधार
गामा = 1.5
लुकअप_टेबल = एनपी। सरणी ([((मैं / 255.0) ** गामा) * 255के लिए मैं में एनपी.अरेंज (0, 256)]).astype("uint8")
gamma_corrected_image = cv2.LUT(ब्राइटनेस_इमेज, लुकअप_टेबल)
उपरोक्त कोड स्निपेट एक लुकअप तालिका बनाता है जो गामा सुधार परिवर्तन को चमक-समायोजित छवि पर लागू करता है। गामा मूल्य समायोजन को नियंत्रित करता है। छवि को गहरा बनाने के लिए 1 से अधिक मानों का उपयोग करें, और इसे उज्जवल बनाने के लिए 1 से कम मानों का उपयोग करें।
अंतिम बढ़ी हुई छवि को सहेजना और प्रदर्शित करना
उपरोक्त एन्हांसमेंट तकनीकों को लागू करने के बाद, अंतिम संसाधित छवि को फ़ाइल में सहेजें।
# फाइनल इमेज सेव करें
cv2.imwrite ('अंतिम_छवि.जेपीजी', gamma_corrected_image)
फिर Matplotlib का उपयोग करके प्रोग्राम का आउटपुट प्रदर्शित करें।
# अंतिम बढ़ी हुई छवि प्रदर्शित करें
plt.imshow (cv2.cvtColor (gamma_corrected_image, cv2.COLOR_BGR2RGB))
plt.शीर्षक ('अंतिम उन्नत छवि')
plt.show ()
अंतिम बढ़ी हुई छवि इस प्रकार है:
छवि वृद्धि का भविष्य
इमेज एन्हांसमेंट का भविष्य आर्टिफिशियल इंटेलिजेंस के क्षेत्र में है। मशीन लर्निंग एल्गोरिदम को छवियों पर स्वचालित रूप से छवि बढ़ाने की तकनीक का प्रदर्शन करने के लिए प्रशिक्षित किया जा रहा है।
ये कार्यक्रम प्रत्येक छवि को स्वतंत्र रूप से मानते हैं, इसलिए वे विभिन्न छवियों के लिए तकनीकों के विभिन्न मूल्यों को लागू करते हैं।