- आवश्यकताओं को
- रास्पबेरी पाई में OpenCV स्थापित करना
- अन्य आवश्यक पैकेजों को स्थापित करना
- रास्पबेरी पाई क्यूआर कोड रीडर हार्डवेयर सेटअप
- रास्पबेरी पाई क्यूआर कोड रीडर के लिए पायथन कोड
- रास्पबेरी पाई क्यूआर कोड स्कैनर का परीक्षण
क्यूआर कोड (क्विक रिस्पांस कोड) एक प्रकार का मैट्रिक्स बारकोड होता है जिसमें उस वस्तु के बारे में जानकारी होती है जिससे वह जुड़ी होती है, जैसे स्थान डेटा, पहचानकर्ता या एक ट्रैकर जो किसी वेबसाइट या ऐप की पहचान करता है, आदि। यह एक मशीन-पठनीय ऑप्टिकल है लेबल जो एक 2 डी छवि के रूप में है और इसका एक अलग पैटर्न है। क्यूआर कोड के बारे में और अधिक जानने के लिए और क्यूआर कोड कैसे जनरेट करें, हमारे पिछले ट्यूटोरियल का पालन करें।
इस ट्यूटोरियल में, हम OpenCV और ZBar लाइब्रेरी का उपयोग करके रास्पबेरी पाई आधारित क्यूआर कोड स्कैनर बनाने जा रहे हैं । ZBar विभिन्न प्रकार के बारकोड और क्यूआर कोड का पता लगाने और डिकोड करने के लिए सबसे अच्छा पुस्तकालय है। OpenCV का उपयोग वीडियो स्ट्रीम से एक नया फ्रेम हथियाने और इसे प्रोसेस करने के लिए किया जाता है। एक बार OpenCV एक फ्रेम को पकड़ लेता है, तो हम उसे एक समर्पित पायथन बारकोड डिकोडिंग लाइब्रेरी जैसे कि ZBar को पास कर सकते हैं जो बार कोड को डिकोड करता है और इसे संबंधित जानकारी में परिवर्तित करता है।
आवश्यकताओं को
- रास्पबेरी पाई 3 (कोई भी संस्करण)
- पाई कैमरा मॉड्यूल
इस रास्पबेरी पाई 3 क्यूआर कोड स्कैनर के साथ आगे बढ़ने से पहले, हमें इस परियोजना में ओपनसीवी, बारकोड डिकोडिंग लाइब्रेरी ZBar, imutils, और कुछ अन्य निर्भरताओं को स्थापित करने की आवश्यकता है। OpenCV का उपयोग यहां डिजिटल इमेज प्रोसेसिंग के लिए किया जाता है। डिजिटल इमेज प्रोसेसिंग के सबसे आम एप्लिकेशन ऑब्जेक्ट डिटेक्शन, फेस रिकॉग्निशन और लोग काउंटर हैं।
रास्पबेरी पाई में OpenCV स्थापित करना
यहां ओपनसीवी लाइब्रेरी का उपयोग रास्पबेरी पाई क्यूआर स्कैनर के लिए किया जाएगा। ओपनसीवी को स्थापित करने के लिए, सबसे पहले, रास्पबेरी पाई को अपडेट करें।
sudo apt-get update
फिर अपने रास्पबेरी पाई पर ओपनसीवी स्थापित करने के लिए आवश्यक निर्भरताएं स्थापित करें।
sudo apt-get libhdf5-देव -y स्थापित sudo apt-get libhdf5 धारावाहिक-देव -y स्थापित sudo apt-get libatlas आधार-देव -y स्थापित sudo apt-get स्थापित libjasper-देव -y sudo apt-get libqtgui4 स्थापित -Y sudo apt-get install libqt4-test –y
उसके बाद, नीचे कमांड का उपयोग करके रास्पबेरी पाई में ओपनसीवी स्थापित करें।
पिप 3 ओपेंनव-कंट्रीब-पाइथन == 4.1.0.25 स्थापित करें
हमने पहले रास्पबेरी पाई के साथ ओपनसीवी का इस्तेमाल किया और इस पर बहुत सारे ट्यूटोरियल बनाए।
- रास्पबेरी पाई पर CMC का उपयोग करके OpenCV स्थापित करना
- रास्पबेरी पाई और OpenCV के साथ वास्तविक समय चेहरा पहचान
- रास्पबेरी पाई और ओपनसीवी का उपयोग करके लाइसेंस प्लेट मान्यता
- OpenCV और रास्पबेरी पाई का उपयोग करके भीड़ का आकार अनुमान
हमने शुरुआती स्तर से शुरू होने वाले ओपनसीवी ट्यूटोरियल की एक श्रृंखला भी बनाई है।
अन्य आवश्यक पैकेजों को स्थापित करना
ZBar स्थापित कर रहा है
ज़बर विभिन्न प्रकार के बारकोड और क्यूआर कोड का पता लगाने और डिकोड करने के लिए सबसे अच्छा पुस्तकालय है। लाइब्रेरी स्थापित करने के लिए नीचे दिए गए कमांड का उपयोग करें:
pip3 इंस्टॉल करें pyzbar
Imutils स्थापित करना
imutils का उपयोग आवश्यक छवि प्रसंस्करण कार्यों जैसे अनुवाद, रोटेशन, आकार बदलने, कंकाल बनाने और OpenCV के साथ Matplotlib छवियों को प्रदर्शित करने के लिए किया जाता है। Imutils स्थापित करने के लिए नीचे दिए गए आदेश का उपयोग करें:
pip3 इंस्टॉल करें
अर्गपर्स स्थापित करना
Argparse लाइब्रेरी को स्थापित करने के लिए नीचे दिए गए कमांड का उपयोग करें। argparse कमांड-लाइन तर्कों को पार्स करने के लिए जिम्मेदार है।
pip3 स्थापित करें
रास्पबेरी पाई क्यूआर कोड रीडर हार्डवेयर सेटअप
यहां हमें केवल रास्पबेरी पाई कैमरा का उपयोग करके इस QR कोड स्कैनर के लिए रास्पबेरी पाई और पाई कैमरा की आवश्यकता है और आपको बस रास्पबेरी पाई में दिए गए कैमरा स्लॉट में कैमरा रिबन कनेक्टर संलग्न करने की आवश्यकता है
पाई कैमरा का उपयोग विभिन्न दिलचस्प परियोजनाओं जैसे रास्पबेरी पाई सर्विलांस कैमरा, विज़िटर मॉनिटरिंग सिस्टम, होम सिक्योरिटी सिस्टम आदि के निर्माण के लिए किया जा सकता है।
रास्पबेरी पाई क्यूआर कोड रीडर के लिए पायथन कोड
रास्पबेरी पाई क्यूआर रीडर के लिए पूरा कोड पृष्ठ के अंत में दिया गया है। रास्पबेरी पाई को प्रोग्राम करने से पहले, आइए कोड को समझते हैं।
इसलिए, हमेशा की तरह, सभी आवश्यक पैकेजों को आयात करके कोड शुरू करें।
imutils.video आयात से वीडियोबार pyzbar आयात से आयात करें pyzbar आयात argparse आयात डेटाटाइम आयात imutils आयात समय आयात cv2
फिर तर्क पार्सर का निर्माण करें और तर्कों को पार्स करें। कमांड-लाइन तर्क में CSV फ़ाइल के पथ के बारे में जानकारी है। CSV (कोमा सेपरेटेड वैल्यूज़) फ़ाइल में हमारे वीडियो स्ट्रीम से हर बारकोड का टाइमस्टैम्प और पेलोड होता है।
ap = argparse.ArgumentParser () ap.add_argument ("- o", "--output", टाइप = str, default = "barcodes.csv", help = "barVodes युक्त आउटपुट VV फ़ाइल का पथ") args = vars () ap.parse_args ())
उसके बाद, वीडियो स्ट्रीम को इनिशियलाइज़ करें और यदि आप USB वेब कैमरा का उपयोग कर रहे हैं तो कमेंट लाइन को अनकम्प्लीट करें।
#vs = VideoStream (src = 0).start () बनाम = VideoStream (usePiCam = = True).start () time.sleep (2.0)
अब लूप के अंदर , वीडियो स्ट्रीम से एक फ्रेम को पकड़ो और इसे 400 पिक्सेल पर आकार दें। एक बार जब यह फ़्रेम पकड़ लेता है, तो क्यूआर कोड का पता लगाने और डिकोड करने के लिए pyzbar.decode फ़ंक्शन को कॉल करें ।
फ़्रेम = फैलाव () फ़्रेम = imutils.resize (फ़्रेम, चौड़ाई = 400) बारकोड = pyzbar.decode (फ़्रेम)
अब, बारकोड के स्थान को निकालने और छवि पर बारकोड के चारों ओर बाउंडिंग बॉक्स को खींचने के लिए पहचाने गए बारकोड पर लूप करें।
बारकोड में बारकोड के लिए: (x, y, w, h) = barcode.rect cv2.rectangle (फ्रेम, (x, y), (x + w, y + h), (0, 0, 255), 2)
फिर डीकोड ("यूटीएफ -8") फ़ंक्शन का उपयोग करके एक "utf-8" स्ट्रिंग में बारकोड को डीकोड करें और फिर बारकोड टाइप प्रोग्राम का उपयोग करके बारकोड का प्रकार निकालें।
barcodeData = barcode.data.d timecode ("utf-8") barcodeType = barcode.type
उसके बाद, निकाले गए बारकोड डेटा और बारकोड प्रकार को टेक्स्ट नाम के एक चर के अंदर सहेजें, और बारकोड डेटा और छवि पर टाइप करें।
पाठ = "{} ({})"। प्रारूप (बारकोडेडा, बारकोड टाइप) cv2.putText (फ्रेम, टेक्स्ट, (x, y - 10), cv2.FONT_HERSHEY_SIMBLEX, 0.5, (0, 0, 255), 2)
अब बारकोड डेटा और बारकोड प्रकार के साथ आउटपुट प्रदर्शित करें।
cv2.imshow ("बारकोड रीडर", फ्रेम)
अब अंतिम चरण में, जांचें कि यदि कुंजी 's' दबाया गया है, तो मुख्य लूप को तोड़ दें और क्लीन-अप प्रक्रिया शुरू करें।
key = cv2.waitKey (1) & 0xFF # अगर `s` कुंजी दबाया गया है, तो लूप से तोड़ें यदि key == ord (" s "): ब्रेक प्रिंट (" सफाई… ") csv.close) cv2.destroyAllWindows () बनाम स्टॉपॉप ()
रास्पबेरी पाई क्यूआर कोड स्कैनर का परीक्षण
एक बार जब आपका सेटअप तैयार हो जाए, तो QR कोड रीडर प्रोग्राम लॉन्च करें। आपको अपने कैमरे से एक लाइव दृश्य दिखाई देगा, अब आप PI कैमरे के सामने बारकोड प्रस्तुत कर सकते हैं। जब पी एक बारकोड को डीकोड करता है, तो यह बारकोड डेटा और बारकोड प्रकार के साथ उसके चारों ओर एक लाल बॉक्स खींचेगा जैसा कि नीचे की छवि में दिखाया गया है:
यह आप आसानी से रास्पबेरी पाई बोर्ड और पाई कैमरा या यूएसबी कैमरा का उपयोग करने के साथ एक रास्पबेरी पाई कैमरा क्यूआर कोड रीडर का निर्माण कर सकते हैं ।
इस परियोजना के लिए एक कार्य वीडियो और पूरा कोड नीचे दिया गया है।