विषयसूची:

ओपनसीवी का उपयोग करके पायथन में रंग का पता लगाना: 8 कदम
ओपनसीवी का उपयोग करके पायथन में रंग का पता लगाना: 8 कदम

वीडियो: ओपनसीवी का उपयोग करके पायथन में रंग का पता लगाना: 8 कदम

वीडियो: ओपनसीवी का उपयोग करके पायथन में रंग का पता लगाना: 8 कदम
वीडियो: Color Pixels Extraction using OpenCV Python | | OpenCV Tutorial in Hindi | Computer Vision 2024, नवंबर
Anonim
Image
Image

नमस्कार! इस निर्देश का उपयोग ओपनसीवी लाइब्रेरी का उपयोग करके अजगर में एक छवि से एक विशिष्ट रंग निकालने के तरीके के बारे में मार्गदर्शन करने के लिए किया जाता है। यदि आप इस तकनीक के लिए नए हैं तो चिंता न करें, इस गाइड के अंत में आप अपने स्वयं के रंग पहचान कार्यक्रम को प्रोग्राम करने में सक्षम होंगे।

निम्नलिखित कार्य हैं या हम ऐसी तकनीकें कह सकते हैं जिन्हें आप सीख रहे होंगे, 1. किसी इमेज को कैसे पढ़ें

2. ट्रैक बार्स कैसे बनाएं

3. ट्रैक बार का उपयोग करके एक छवि के ह्यू, संतृप्ति और मूल्य के मूल्य को कैसे समायोजित करें

4. और फिर आपका अंतिम आउटपुट होगा

आप आउटपुट का वीडियो देख सकते हैं जिसे मैंने नीचे संलग्न किया है।

तो चलो शुरू हो जाओ

आपूर्ति

  • अजगर 3
  • ओपनसीवी लाइब्रेरी
  • सुन्न पुस्तकालय

चरण 1: पुस्तकालय आयात करना

पुस्तकालय आयात करना
पुस्तकालय आयात करना

छवि पीले रंग की फेरारी की है जैसा कि दिखाया गया है और हम उस छवि से केवल पीला रंग निकालने के लिए प्रोग्राम करेंगे

पहला कदम हमारे पुस्तकालयों का आयात करना होगा

1. ओपनसीवी लाइब्रेरी सहित। इसे अजगर में cv2 कहा जाता है

2. numpy लाइब्रेरी को np के रूप में शामिल करना। "as" हमें np के रूप में सुन्न करने की अनुमति देता है, इसलिए बार-बार सुन्न लिखने की आवश्यकता नहीं है

चरण 2: ट्रैक बार्स बनाना

ट्रैक बार्स बनाना
ट्रैक बार्स बनाना

किसी छवि में ह्यू, संतृप्ति और मान के मान को समायोजित करने के लिए ट्रैक बार बनाए जाते हैं।

cv2.namedWindow("TrackBars") कोड की इस लाइन का उपयोग एक नई आउटपुट विंडो बनाने के लिए किया जाता है और विंडो का नाम TrackBars के रूप में दिया जाता है (आप अपनी इच्छानुसार कोई भी नाम दे सकते हैं)

cv2.resizeWindow("TrackBars", 600, 250) इस फ़ंक्शन का उपयोग विंडो का आकार बदलने के लिए किया जाता है। "ट्रैकबार्स" उस विंडो के लिए है जिसका आप आकार बदलना चाहते हैं क्योंकि मैं ट्रैकबार्स विंडो का आकार बदलना चाहता हूं मैंने वह नाम लिखा है। दो पूर्णांकों के बाद। वे दो पूर्णांक चौड़ाई और ऊँचाई हैं। आप आकार बदलने के लिए उन दो नंबरों के साथ खेल सकते हैं

चरण 3: रंग, संतृप्ति और मूल्य के लिए ट्रैकबार बनाना

रंग, संतृप्ति और मूल्य के लिए ट्रैकबार बनाना
रंग, संतृप्ति और मूल्य के लिए ट्रैकबार बनाना
रंग, संतृप्ति और मूल्य के लिए ट्रैकबार बनाना
रंग, संतृप्ति और मूल्य के लिए ट्रैकबार बनाना

अब हम Hue, Saturation और value के लिए कुल 6 TrackBars बनाएंगे। प्रत्येक में दो होंगे यानी न्यूनतम के लिए 1 और अधिकतम के लिए 1। हम openCV के createTrackbar फंक्शन का उपयोग करेंगे। सबसे पहले हम इस फंक्शन का सिंटेक्स देखेंगे।

cv2.createTrackbar("WINDOWNAME", "MAINWINDOWNAME", "RANGE")। यह भ्रमित करने वाला हो सकता है लेकिन चिंता न करें हम हर कदम पर चलेंगे। एक बात का ध्यान रखें कि ओपनसीवी में ह्यू का मान 179 है, संतृप्ति 255 है और मान 255. है

1. ह्यू मिन के लिए ट्रैकबार बनाना:

cv2.createTrackbar ("ह्यू मिन", "ट्रैकबार", 0, 179, खाली)

इसमें ह्यू मिन ट्रैकबार का नाम है, ट्रैकबार्स मुख्य विंडो है, 0 वह स्थिति है जिस पर हमारा स्लाइडर होगा और 179 रेंज है जिसका अर्थ है कि सिल्डर 0-179 से आगे बढ़ेगा

2. ह्यू मैक्स के लिए ट्रैकबार बनाना:

cv2.createTrackbar ("ह्यू मैक्स", "ट्रैकबार", 179, 179, खाली)

इस ह्यू मैक्स में ट्रैकबार का नाम है, ट्रैकबार्स मुख्य विंडो है, 179 वह स्थिति है जिस पर हमारा स्लाइडर होगा और 179 अधिकतम रेंज का मतलब है कि सिल्डर 179-0 से आगे बढ़ेगा

3. इसी तरह सैट मिन, सैट मैक्स, वैल मिन और वैल मैक्स के चरणों को दोहराएं जैसा कि चित्र में दिखाया गया है

सफेद पृष्ठभूमि वाली छवि आउटपुट छवि है। आपके ट्रैक बार इस तरह दिखेंगे

चरण 4: छवि को कैसे पढ़ें और उसका आकार बदलें

छवि को कैसे पढ़ें और उसका आकार बदलें
छवि को कैसे पढ़ें और उसका आकार बदलें

cv2.imread() आपको इमेज पढ़ने की अनुमति देता है। एक महत्वपूर्ण विचार आपको यह ध्यान रखने की आवश्यकता है कि आपकी छवि का स्थान उसी फ़ोल्डर में होना चाहिए जहां प्रोग्राम सहेजा गया है। हम लूप में डाल देंगे क्योंकि यह तब तक चलना चाहिए जब तक कि छवि को पढ़ना नहीं है या हम तब तक कह सकते हैं जब तक कि स्थिति सही न हो

img = cv2.imread("ferrari.jpg")

  • इसमें मैंने एक वेरिएबल नाम " img " बनाया है जिसमें मैं इमेज को स्टोर कर रहा हूं
  • cv2.imread के अंदर छवि का नाम डबल कोट के अंदर इसके विस्तार के साथ लिखें

एक छवि का आकार बदलने के लिए हम cv2.resize फ़ंक्शन का उपयोग करेंगे। यह भाग वैकल्पिक है, यदि आप आकार बदलना चाहते हैं तो आप इस फ़ंक्शन का उपयोग कर सकते हैं

cv2.resize के अंदर पहले वेरिएबल नाम लिखें जिसमें इमेज स्टोर की गई है और फिर उसकी चौड़ाई और ऊंचाई।

चरण 5: किसी छवि पर इसे लागू करने के लिए ट्रैक बार मान पढ़ना

किसी छवि पर इसे लागू करने के लिए ट्रैक बार मान पढ़ना
किसी छवि पर इसे लागू करने के लिए ट्रैक बार मान पढ़ना
किसी छवि पर इसे लागू करने के लिए ट्रैक बार मान पढ़ना
किसी छवि पर इसे लागू करने के लिए ट्रैक बार मान पढ़ना

ठीक है तो अब हम ट्रैकबार बार मान पढ़ने जा रहे हैं ताकि हम इसे अपनी छवि पर लागू कर सकें। हम cv2.getTrackbarPos() फ़ंक्शन का उपयोग करके मान प्राप्त करेंगे।

आइए उस हिस्से से शुरू करते हैं …

h_min = cv2.getTrackbarPos ("ह्यू मिन", "ट्रैकबार्स")

उपरोक्त कथन में मैं एक चर नाम h_min बना रहा हूँ जिसमें मैं ह्यू मिन का मान संग्रहीत करूँगा। तो cv2.getTrackbarPos के अंदर पहला तर्क "ह्यू मिन" होगा क्योंकि मुझे ह्यू मिन के मान चाहिए (वर्तनी बिल्कुल वैसी ही होनी चाहिए जैसे यह createTrackbar फ़ंक्शन है) और दूसरा तर्क ट्रैकबार विंडो का नाम होगा जिससे यह संबंधित है।

  • h_max और बाकी कार्यों के लिए उसी प्रक्रिया को दोहराएं जैसा कि ऊपर की छवि में दिखाया गया है और फिर प्रिंट () का उपयोग करके सभी मूल्यों को प्रिंट करें
  • आउटपुट दूसरी छवि में दिखाया गया है। यह h_min, h_max, s_min, s_max, v_min, s_max के मान प्रिंट कर रहा है

चरण 6: छवि प्रदर्शित करना और ऊपरी और निचली सीमा निर्धारित करना

छवि प्रदर्शित करना और ऊपरी और निचली सीमा निर्धारित करना
छवि प्रदर्शित करना और ऊपरी और निचली सीमा निर्धारित करना

अब हमारे पास ह्यू, संतृप्ति और मूल्य का न्यूनतम और अधिकतम मूल्य है, हम इस मान का उपयोग छवि को फ़िल्टर करने के लिए करेंगे ताकि हम किसी छवि के विशेष रंग आउटपुट को प्राप्त कर सकें।

हम cv2.inRange फंक्शन का उपयोग करके इसके लिए एक मास्क तैयार करेंगे। और इससे पहले हम रंग, संतृप्ति और मूल्य की ऊपरी और निचली सीमा निर्धारित करेंगे

तो एक चर नाम "निचला" बनाएं और numpy array फ़ंक्शन का उपयोग करके सभी 3 के लिए न्यूनतम की सीमा निम्नानुसार निर्धारित करें

निचला = np.array ([h_min, s_min, v_min])

ऊपरी के लिए एक ही चरण दोहराएं

ऊपरी = np.array ([h_max, s_max, v_max])

अब हम निम्नानुसार एक मास्क बनाएंगे

मास्क = cv2.inRange (आकार बदलें, निचला, ऊपरी) cv2.inRang के अंदर पहला तर्क वेरिएबल होगा जिसमें मेरी अंतिम छवि संग्रहीत है, दूसरा तर्क निचली सीमा होगा और तीसरा तर्क ऊपरी सीमा होगा।

अब हम मुख्य छवि और मुखौटा प्रदर्शित करने जा रहे हैं। प्रदर्शित करने के लिए हम cv2.imshow() फ़ंक्शन का उपयोग करेंगे

cv2.imshow("img", resize) यह मुख्य छवि प्रदर्शित करने के लिए है। पहला तर्क उस विंडो का नाम है जिसे आप अपनी इच्छानुसार कोई भी नाम दे सकते हैं और दूसरा तर्क परिवर्तनशील है जिसमें मेरी मुख्य छवि संग्रहीत है जिसे आप प्रदर्शित करना चाहते हैं।

इसी तरह मास्क के लिए स्टेप दोहराएं

cv2.imshow ("आउटपुट", मास्क)

चरण 7: अब अंतिम चरण

अब अंतिम चरण
अब अंतिम चरण

इस अंतिम चरण में हम कार और डिस्प्ले का रंग निकालेंगे।

मैंने एक परिवर्तनीय नाम परिणाम बनाया है। फिर से आप जो चाहें नाम दे सकते हैं। इसलिए हम cv2.bitwise_and() फ़ंक्शन का उपयोग करेंगे जिसमें हम छवियों को एक साथ जोड़ेंगे और एक नई छवि बनाएंगे। और जहां भी दोनों छवियों में पिक्सेल मौजूद हैं, वह इसे हां या "1" के रूप में लेगा।

परिणाम = cv2.bitwise_and (आकार बदलें, आकार बदलें, मुखौटा = मुखौटा)

  • इसमें पहला तर्क हमारी छवि होगी
  • दूसरा तर्क भी हमारी मूल छवि होगी, लेकिन उसके बाद मास्क लगाया जाएगा जिसे हमने पहले बनाया था
  • और अंत में केवल imshow फ़ंक्शन का उपयोग करके परिणाम प्रदर्शित करें

बस इस अंतिम चरण को कॉपी पेस्ट करें, यह सिर्फ एक देरी है और आप कीबोर्ड पर "a" दबाकर आउटपुट विंडो से बाहर निकल सकते हैं

चरण 8: अंतिम आउटपुट

सिफारिश की: