इस समस्या में, हम देखेंगे कि पायथन OpenCV मॉड्यूल का उपयोग करके इरोजन और डाइलेशन जैसे कुछ मॉर्फोलॉजिकल ऑपरेशन्स कैसे कर सकता है। OpenCV लाइब्रेरी मुख्य रूप से कंप्यूटर विजन के लिए डिज़ाइन की गई है। यह ओपन सोर्स है। मूल रूप से इसे इंटेल द्वारा डिज़ाइन किया गया था। यह ओपन-सोर्स BSD लाइसेंस के तहत मुफ्त में उपयोग करने के लिए उपलब्ध है।
OpenCV कार्यक्षमता का उपयोग करने के लिए, हमें उन्हें pip का उपयोग करके डाउनलोड करने की आवश्यकता है।
sudo pip3 install opencv-python
इरोजन इमेज क्या है और यह कैसे काम करता है?
इरोजन में, यह फोरग्राउंड ऑब्जेक्ट्स की सीमाओं को नष्ट कर देता है। इसका उपयोग इमेजेज से छोटे सफेद शोर को हटाने के लिए किया जाता है। इरोजन का उपयोग दो जुड़ी हुई इमेजेज को अलग करने के लिए भी किया जा सकता है।
एक इमेज से एक कर्नेल बनाया जाता है। कर्नेल एक मैट्रिक्स है, जहां क्रम विषम होता है, जैसे 3, 5, 7।
इमेज का एक पिक्सेल चुना जाता है। यह पिक्सेल केवल 1 के रूप में चुना जाएगा यदि कर्नेल के नीचे सभी पिक्सेल्स 1 हैं। अन्यथा यह नष्ट हो जाएगा।
तो सीमा के पास के सभी पिक्सेल्स को त्याग दिया जाएगा।
तो फोरग्राउंड ऑब्जेक्ट की मोटाई कम हो जाती है।
डाइलेशन इमेज क्या है और यह कैसे काम करता है?
डाइलेशन में, यह ऑब्जेक्ट क्षेत्र को बढ़ाता है। इरोजन सफेद शोर को हटा सकता है, लेकिन यह हमारी इमेज को भी सिकोड़ देता है, इसलिए इरोजन के बाद, यदि डाइलेशन किया जाता है, तो हम बेहतर शोर हटाने के परिणाम प्राप्त कर सकते हैं। डाइलेशन का उपयोग ऑब्जेक्ट के कुछ टूटे हुए हिस्सों को जोड़ने के लिए भी किया जा सकता है।
एक इमेज से एक कर्नेल बनाया जाता है। कर्नेल एक मैट्रिक्स है, जहां क्रम विषम होता है, जैसे 3, 5, 7।
इमेज का एक पिक्सेल चुना जाता है। यह पिक्सेल केवल 1 के रूप में चुना जाएगा यदि कर्नेल के नीचे सभी पिक्सेल्स 1 हैं।
इमेज के सफेद क्षेत्र या फोरग्राउंड ऑब्जेक्ट्स के आकार को बढ़ाता है।
उदाहरण कोड
import cv2
import numpy as np
input_image = cv2.imread('TP_logo.jpg', cv2.IMREAD_COLOR)
kernel = np.ones((3,3), np.uint8) # numpy से 3x3 मैट्रिक्स के रूप में कर्नेल सेट करें
# मूल इमेज से इरोजन और डाइलेशन इमेज बनाएं
erosion_image = cv2.erode(input_image, kernel, iterations=1)
dilation_image = cv2.dilate(input_image, kernel, iterations=1)
cv2.imshow('Input', input_image)
cv2.imshow('Erosion', erosion_image)
cv2.imshow('Dilation', dilation_image)
cv2.waitKey(0) # बाहर निकलने के लिए एक कुंजी की प्रतीक्षा करें
आउटपुट