- అవసరాలు
- రాస్ప్బెర్రీ పైలో ఓపెన్సివిని ఇన్స్టాల్ చేస్తోంది
- అవసరమైన ఇతర ప్యాకేజీలను వ్యవస్థాపించడం
- రాస్ప్బెర్రీ పై క్యూఆర్ కోడ్ రీడర్ హార్డ్వేర్ సెటప్
- రాస్ప్బెర్రీ పై క్యూఆర్ కోడ్ రీడర్ కోసం పైథాన్ కోడ్
- రాస్ప్బెర్రీ పై క్యూఆర్ కోడ్ స్కానర్ను పరీక్షిస్తోంది
QR కోడ్ (శీఘ్ర ప్రతిస్పందన కోడ్) అనేది ఒక రకమైన మ్యాట్రిక్స్ బార్కోడ్, ఇది జతచేయబడిన అంశం గురించి సమాచారాన్ని కలిగి ఉంటుంది, స్థాన డేటా, ఐడెంటిఫైయర్ లేదా వెబ్సైట్ లేదా అనువర్తనాన్ని గుర్తించే ట్రాకర్ మొదలైనవి. ఇది యంత్రం చదవగలిగే ఆప్టికల్ 2D చిత్రం రూపంలో మరియు వేరే నమూనాను కలిగి ఉన్న లేబుల్. QR కోడ్ల గురించి మరియు QR కోడ్ను ఎలా ఉత్పత్తి చేయాలో తెలుసుకోవడానికి, మా మునుపటి ట్యుటోరియల్ని అనుసరించండి.
ఈ ట్యుటోరియల్లో, మేము ఓపెన్సివి మరియు జెడ్బార్ లైబ్రరీని ఉపయోగించి రాస్ప్బెర్రీ పై ఆధారిత క్యూఆర్ కోడ్ స్కానర్ను నిర్మించబోతున్నాం. వివిధ రకాల బార్కోడ్లు మరియు క్యూఆర్ కోడ్లను గుర్తించడానికి మరియు డీకోడ్ చేయడానికి ZBar ఉత్తమ లైబ్రరీ. వీడియో స్ట్రీమ్ నుండి క్రొత్త ఫ్రేమ్ను పట్టుకుని, దాన్ని ప్రాసెస్ చేయడానికి ఓపెన్సివి ఉపయోగించబడుతుంది. ఓపెన్సివి ఒక ఫ్రేమ్ను సంగ్రహించిన తర్వాత, మేము దానిని ZBar వంటి ప్రత్యేకమైన పైథాన్ బార్కోడ్ డీకోడింగ్ లైబ్రరీకి పంపవచ్చు, ఇది బార్ కోడ్ను డీకోడ్ చేసి సంబంధిత సమాచారంగా మారుస్తుంది.
అవసరాలు
- రాస్ప్బెర్రీ పై 3 (ఏదైనా వెర్షన్)
- పై కెమెరా మాడ్యూల్
ఈ రాస్ప్బెర్రీ పై 3 క్యూఆర్ కోడ్ స్కానర్తో కొనసాగడానికి ముందు, మొదట, మేము ఈ ప్రాజెక్టులో ఓపెన్సివి, బార్కోడ్ డీకోడింగ్ లైబ్రరీ జెడ్బార్, ఇమ్యూటిల్స్ మరియు కొన్ని ఇతర డిపెండెన్సీలను ఇన్స్టాల్ చేయాలి. ఓపెన్సివి డిజిటల్ ఇమేజ్ ప్రాసెసింగ్ కోసం ఇక్కడ ఉపయోగించబడుతుంది. డిజిటల్ ఇమేజ్ ప్రాసెసింగ్ యొక్క అత్యంత సాధారణ అనువర్తనాలు ఆబ్జెక్ట్ డిటెక్షన్, ఫేస్ రికగ్నిషన్ మరియు పీపుల్ కౌంటర్.
రాస్ప్బెర్రీ పైలో ఓపెన్సివిని ఇన్స్టాల్ చేస్తోంది
ఇక్కడ రాస్ప్బెర్రీ పై క్యూఆర్ స్కానర్ కోసం ఓపెన్సివి లైబ్రరీ ఉపయోగించబడుతుంది. OpenCV ని వ్యవస్థాపించడానికి, మొదట, రాస్ప్బెర్రీ పైని నవీకరించండి.
sudo apt-get update
మీ రాస్ప్బెర్రీ పైలో ఓపెన్సివిని ఇన్స్టాల్ చేయడానికి అవసరమైన డిపెండెన్సీలను ఇన్స్టాల్ చేయండి.
sudo apt-get install libhdf5-dev -y sudo apt-get install libhdf5-serial-dev –y sudo apt-get install libatlas-base-dev –y sudo apt-get install libjasper-dev -y sudo apt-get install libqtgui4 -y సుడో వర్ణనాత్మక-పొందుటకు ఇన్స్టాల్ libqt4 పరీక్ష-y
ఆ తరువాత, కింది ఆదేశాన్ని ఉపయోగించి రాస్ప్బెర్రీ పై ఓపెన్సివిని ఇన్స్టాల్ చేయండి.
పైప్ 3 ఇన్స్టాల్ ఓపెన్సివి-కంట్రిబ్యూట్-పైథాన్ == 4.1.0.25
మేము ఇంతకుముందు రాస్ప్బెర్రీ పైతో ఓపెన్సివిని ఉపయోగించాము మరియు దానిపై చాలా ట్యుటోరియల్లను సృష్టించాము.
- CMake ఉపయోగించి రాస్ప్బెర్రీ పై ఓపెన్సివిని ఇన్స్టాల్ చేస్తోంది
- రాస్ప్బెర్రీ పై మరియు ఓపెన్ సివిలతో రియల్ టైమ్ ఫేస్ రికగ్నిషన్
- రాస్ప్బెర్రీ పై మరియు ఓపెన్ సివి ఉపయోగించి లైసెన్స్ ప్లేట్ గుర్తింపు
- ఓపెన్సివి మరియు రాస్ప్బెర్రీ పై ఉపయోగించి క్రౌడ్ సైజు అంచనా
మేము అనుభవశూన్యుడు స్థాయి నుండి ప్రారంభమయ్యే ఓపెన్సివి ట్యుటోరియల్ల శ్రేణిని కూడా సృష్టించాము.
అవసరమైన ఇతర ప్యాకేజీలను వ్యవస్థాపించడం
ZBar ని ఇన్స్టాల్ చేస్తోంది
వివిధ రకాల బార్కోడ్లు మరియు క్యూఆర్ కోడ్లను గుర్తించడానికి మరియు డీకోడ్ చేయడానికి Zbar ఉత్తమ లైబ్రరీ. లైబ్రరీని ఇన్స్టాల్ చేయడానికి క్రింది ఆదేశాన్ని ఉపయోగించండి:
పైప్ 3 ఇన్స్టాల్ పిజ్బార్
Imutils ని ఇన్స్టాల్ చేస్తోంది
అనువాదం, భ్రమణం, పున izing పరిమాణం, అస్థిపంజరం మరియు ఓపెన్సివితో మాట్ప్లోట్లిబ్ చిత్రాలను సులభంగా ప్రదర్శించడం వంటి ముఖ్యమైన ఇమేజ్ ప్రాసెసింగ్ ఫంక్షన్లను చేయడానికి ఇముటిల్స్ ఉపయోగించబడతాయి. Imutils ని వ్యవస్థాపించడానికి క్రింది ఆదేశాన్ని ఉపయోగించండి:
పైప్ 3 ఇన్స్టాల్ ఇమ్యుటిల్స్
ఆర్గ్పార్స్ను ఇన్స్టాల్ చేస్తోంది
ఆర్గ్పార్స్ లైబ్రరీని ఇన్స్టాల్ చేయడానికి క్రింది ఆదేశాన్ని ఉపయోగించండి. కమాండ్-లైన్ ఆర్గ్యుమెంట్లను అన్వయించడానికి అర్గ్పార్స్ బాధ్యత వహిస్తుంది.
పైప్ 3 ఇన్స్టాల్ అర్గ్పార్స్
రాస్ప్బెర్రీ పై క్యూఆర్ కోడ్ రీడర్ హార్డ్వేర్ సెటప్
రాస్ప్బెర్రీ పై కెమెరాను ఉపయోగించి ఈ క్యూఆర్ కోడ్ స్కానర్ కోసం ఇక్కడ మనకు రాస్ప్బెర్రీ పై మరియు పై కెమెరా మాత్రమే అవసరం మరియు మీరు రాస్ప్బెర్రీ పైలో ఇచ్చిన కెమెరా స్లాట్లో కెమెరా రిబ్బన్ కనెక్టర్ను అటాచ్ చేయాలి.
రాస్ప్బెర్రీ పై నిఘా కెమెరా, విజిటర్ మానిటరింగ్ సిస్టమ్, హోమ్ సెక్యూరిటీ సిస్టమ్ వంటి వివిధ ఆసక్తికరమైన ప్రాజెక్టులను నిర్మించడానికి పై కెమెరాను ఉపయోగించవచ్చు.
రాస్ప్బెర్రీ పై క్యూఆర్ కోడ్ రీడర్ కోసం పైథాన్ కోడ్
రాస్ప్బెర్రీ పై క్యూఆర్ రీడర్ కోసం పూర్తి కోడ్ పేజీ చివరిలో ఇవ్వబడింది. మేము రాస్ప్బెర్రీ పైని ప్రోగ్రామ్ చేయడానికి ముందు, కోడ్ను అర్థం చేసుకుందాం.
కాబట్టి, ఎప్పటిలాగే, అవసరమైన అన్ని ప్యాకేజీలను దిగుమతి చేయడం ద్వారా కోడ్ను ప్రారంభించండి.
imutils.video దిగుమతి నుండి వీడియోస్ట్రీమ్ పిజ్బార్ దిగుమతి నుండి పిజ్బార్ దిగుమతి ఆర్గ్పార్స్ దిగుమతి డేట్టైమ్ దిగుమతి imutils దిగుమతి సమయం దిగుమతి cv2
అప్పుడు ఆర్గ్యుమెంట్ పార్సర్ను నిర్మించి, వాదనలను అన్వయించండి. కమాండ్-లైన్ ఆర్గ్యుమెంట్ CSV ఫైల్ యొక్క మార్గం గురించి సమాచారాన్ని కలిగి ఉంటుంది. CSV (కామాతో వేరు చేయబడిన విలువలు) ఫైల్ మా వీడియో స్ట్రీమ్ నుండి ప్రతి బార్కోడ్ యొక్క టైమ్స్టాంప్ మరియు పేలోడ్ను కలిగి ఉంటుంది.
ap = argparse.ArgumentParser () ap.add_argument ("- o", "--output", type = str, default = "barcodes.csv", help = "బార్కోడ్లను కలిగి ఉన్న CSV ఫైల్ను అవుట్పుట్ చేసే మార్గం") args = vars (ap.parse_args ())
ఆ తరువాత, మీరు USB వెబ్క్యామ్ను ఉపయోగిస్తుంటే వీడియో స్ట్రీమ్ను ప్రారంభించండి మరియు వ్యాఖ్యానించిన పంక్తిని అన్కామ్ చేయండి.
#vs = వీడియో స్ట్రీమ్ (src = 0).స్టార్ట్ () vs = వీడియో స్ట్రీమ్ (usePiCamera = ట్రూ).స్టార్ట్ () time.sleep (2.0)
ఇప్పుడు లూప్ లోపల, వీడియో స్ట్రీమ్ నుండి ఒక ఫ్రేమ్ను పట్టుకుని 400 పిక్సెల్లకు పరిమాణాన్ని మార్చండి. ఇది ఫ్రేమ్ను పట్టుకున్న తర్వాత, QR కోడ్ను గుర్తించి డీకోడ్ చేయడానికి pyzbar.decode ఫంక్షన్కు కాల్ చేయండి.
frame = vs.read () frame = imutils.resize (frame, width = 400) barcodes = pyzbar.decode (frame)
ఇప్పుడు, బార్కోడ్ యొక్క స్థానాన్ని సంగ్రహించడానికి గుర్తించిన బార్కోడ్లపై లూప్ చేయండి మరియు చిత్రంపై బార్కోడ్ చుట్టూ సరిహద్దు పెట్టెను గీయండి.
బార్కోడ్లలో బార్కోడ్ కోసం: (x, y, w, h) = barcode.rect cv2.rectangle (ఫ్రేమ్, (x, y), (x + w, y + h), (0, 0, 255), 2)
డీకోడ్ ("utf-8") ఫంక్షన్ను ఉపయోగించి గుర్తించిన బార్కోడ్ను "utf-8" స్ట్రింగ్లోకి డీకోడ్ చేసి, ఆపై బార్కోడ్.టైప్ ఫంక్షన్ను ఉపయోగించి బార్కోడ్ రకాన్ని సేకరించండి.
barcodeData = barcode.data.decode ("utf-8") barcodeType = barcode.type
ఆ తరువాత, సేకరించిన బార్కోడ్ డేటా మరియు బార్కోడ్ రకాన్ని టెక్స్ట్ అనే వేరియబుల్ లోపల సేవ్ చేసి, బార్కోడ్ డేటాను గీయండి మరియు చిత్రంపై టైప్ చేయండి.
టెక్స్ట్ = "{} ({})". ఫార్మాట్ (బార్కోడ్డేటా, బార్కోడ్ టైప్)
ఇప్పుడు బార్కోడ్ డేటా మరియు బార్కోడ్ రకంతో అవుట్పుట్ను ప్రదర్శిస్తుంది.
cv2.imshow ("బార్కోడ్ రీడర్", ఫ్రేమ్)
ఇప్పుడు చివరి దశలో, కీ 'లు' నొక్కినట్లు తనిఖీ చేసి, ఆపై ప్రధాన లూప్ను విచ్ఛిన్నం చేసి శుభ్రపరిచే ప్రక్రియను ప్రారంభించండి.
key = cv2.nightKey (1) & 0xFF # `s` కీ నొక్కినట్లయితే, కీ == ord (" s ") ఉంటే లూప్ నుండి విచ్ఛిన్నం: ప్రింట్ బ్రేక్ (" శుభ్రపరచడం… ") csv.close () cv2.destroyAllWindows () vs.stop ()
రాస్ప్బెర్రీ పై క్యూఆర్ కోడ్ స్కానర్ను పరీక్షిస్తోంది
మీ సెటప్ సిద్ధమైన తర్వాత, QR కోడ్ రీడర్ ప్రోగ్రామ్ను ప్రారంభించండి. మీ కెమెరా నుండి ప్రత్యక్ష వీక్షణను చూపించే విండోను మీరు చూస్తారు, ఇప్పుడు మీరు పిఐ కెమెరా ముందు బార్కోడ్లను ప్రదర్శించవచ్చు. పై బార్కోడ్ను డీకోడ్ చేసినప్పుడు, దాని చుట్టూ బార్కోడ్ డేటా మరియు బార్కోడ్ రకంతో ఎరుపు పెట్టెను క్రింద చిత్రంలో చూపిన విధంగా గీస్తారు:
రాస్ప్బెర్రీ పై బోర్డు మరియు పై కెమెరా లేదా యుఎస్బి కెమెరాను ఉపయోగించడం ద్వారా మీరు రాస్ప్బెర్రీ పై కెమెరా క్యూఆర్ కోడ్ రీడర్ను సులభంగా నిర్మించవచ్చు.
ఈ ప్రాజెక్ట్ కోసం పనిచేసే వీడియో మరియు పూర్తి కోడ్ క్రింద ఇవ్వబడ్డాయి.