- Zahtjevi
- Instaliranje OpenCV-a u Raspberry Pi
- Instaliranje ostalih potrebnih paketa
- Postavljanje hardvera za čitač QR kodova Raspberry pi
- Python kôd za Raspberry Pi čitač QR kodova
- Testiranje Raspberry Pi skenera QR koda
QR kôd (kôd za brzi odgovor) vrsta je matričnog crtičnog koda koji sadrži informacije o stavci kojoj je pridružen, poput podataka o lokaciji, identifikatora ili programa za praćenje koji identificira web mjesto ili aplikaciju itd. To je strojno čitljiv optički uređaj naljepnica koja je u obliku 2D slike i ima drugačiji uzorak. Da biste saznali više o QR kodovima i kako generirati QR kôd, slijedite naš prethodni vodič.
U ovom uputstvu izradit ćemo Raspberry Pi skener QR koda koristeći OpenCV i ZBar knjižnicu. ZBar je najbolja knjižnica za otkrivanje i dekodiranje različitih vrsta crtičnih kodova i QR kodova. OpenCV se koristi za hvatanje novog okvira iz videotoka i njegovu obradu. Jednom kada OpenCV uhvati okvir, možemo ga proslijediti u namjensku Python knjižnicu za dekodiranje crtičnog koda, kao što je ZBar koja dekodira crtični kod i pretvara ga u odgovarajuće informacije.
Zahtjevi
- Raspberry Pi 3 (bilo koja verzija)
- Modul kamere Pi
Prije nastavka rada s ovim Raspberry Pi 3 skenerom QR kodova, prvo moramo instalirati OpenCV, biblioteku za dekodiranje barkodova ZBar, imutils i neke druge ovisnosti u ovom projektu. OpenCV se ovdje koristi za digitalnu obradu slike. Najčešća primjena digitalne obrade slike su otkrivanje predmeta, prepoznavanje lica i brojač ljudi.
Instaliranje OpenCV-a u Raspberry Pi
Ovdje će se OpenCV knjižnica koristiti za QR skener Raspberry Pi. Da biste instalirali OpenCV, prvo ažurirajte Raspberry Pi.
sudo apt-get ažuriranje
Zatim instalirajte potrebne ovisnosti za instaliranje OpenCV-a na vaš Raspberry Pi.
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 sudo apt-get install libqt4-test –y
Nakon toga instalirajte OpenCV u Raspberry Pi pomoću naredbe u nastavku.
pip3 instalirati opencv-contrib-python == 4.1.0.25
Prije smo koristili OpenCV s Raspberry pi i stvorili smo puno tutorijala na njemu.
- Instaliranje OpenCV-a na Raspberry Pi pomoću CMake-a
- Prepoznavanje lica u stvarnom vremenu s Raspberry Pi i OpenCV
- Prepoznavanje registarske pločice pomoću Raspberry Pi i OpenCV
- Procjena veličine gužve pomoću OpenCV-a i Raspberry Pi-a
Također smo stvorili niz vodiča za OpenCV počevši od početničke razine.
Instaliranje ostalih potrebnih paketa
Instaliranje ZBara
Zbar je najbolja knjižnica za otkrivanje i dekodiranje različitih vrsta crtičnih kodova i QR kodova. Upotrijebite donju naredbu za instaliranje knjižnice:
pip3 instalirati pyzbar
Instaliranje imutila
imutils se koristi za olakšavanje bitnih funkcija obrade slika kao što su prijevod, rotacija, promjena veličine, skeletiranje i prikazivanje Matplotlib slika s OpenCV-om. Upotrijebite naredbu ispod kako biste instalirali imutils:
pip3 instalirati imutils -
Instaliranje argparsea
Upotrijebite donju naredbu za instaliranje argparse biblioteke. argparse je odgovoran za raščlanjivanje argumenata naredbenog retka.
pip3 instalirati argparse
Postavljanje hardvera za čitač QR kodova Raspberry pi
Ovdje trebamo samo Raspberry Pi i Pi kameru za ovaj skener QR koda pomoću Raspberry Pi kamere, a samo trebate pričvrstiti vrpcu kamere u otvor za kameru naveden u Raspberry pi

Pi kamera može se koristiti za izgradnju različitih zanimljivih projekata poput nadzorne kamere Raspberry Pi, sustava za nadzor posjetitelja, kućnog sigurnosnog sustava itd.
Python kôd za Raspberry Pi čitač QR kodova
Kompletni kod za Raspberry Pi QR čitač dan je na kraju stranice. Prije nego što programiramo Raspberry Pi, shvatimo kôd.
Dakle, kao i obično, pokrenite kôd uvozom svih potrebnih paketa.
from imutils.video import VideoStream from pyzbar import pyzbar import argparse import datetime import imutils import time import cv2
Zatim konstruirajte parser argumenata i raščlanite argumente. Argument naredbenog retka sadrži informacije o putu CSV datoteke. Datoteka CSV (vrijednosti odvojene zarezom) sadrži vremensku oznaku i nosivost svakog crtičnog koda iz našeg videotoka.
ap = argparse.ArgumentParser () ap.add_argument ("- o", "--output", type = str, default = "barcodes.csv", help = "put za izlaz CSV datoteke koja sadrži crtične kodove") args = vars (ap.parse_args ())
Nakon toga inicijalizirajte video stream i uklonite komentar iz komentiranog retka ako koristite USB web kameru.
#vs = VideoStream (src = 0).start () vs = VideoStream (usePiCamera = True).start () time.sleep (2.0)
Sada unutar petlje, zgrabite okvir iz video streama i promijenite ga na 400 piksela. Nakon što uhvati okvir, pozovite funkciju pyzbar.decode da biste otkrili i dekodirali QR kôd.
frame = vs.read () frame = imutils.resize (frame, width = 400) crtični kodovi = pyzbar.decode (frame)
Sada pređite petlju preko otkrivenih crtičnih kodova da biste izvukli mjesto crtičnog koda i nacrtali okvir oko crtičnog koda na slici.
za crtični kod u crtičnim kodovima: (x, y, w, h) = barcode.rect cv2.rectangle (okvir, (x, y), (x + w, y + h), (0, 0, 255), 2)

Zatim dekodirajte otkriveni crtični kôd u niz "utf-8" pomoću funkcije decode ("utf-8"), a zatim izdvojite vrstu crtičnog koda pomoću funkcije barcode.type.
barcodeData = barcode.data.decode ("utf-8") barcodeType = barcode.type
Nakon toga izvađene podatke crtičnog koda i vrstu crtičnog koda spremite u varijablu s imenom tekst, a crteže crtajte na slici.
text = "{} ({})". format (barcodeData, barcodeType) cv2.putText (okvir, tekst, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0,5, (0, 0, 255), 2)

Sada prikažite izlaz s podacima o crtičnom kodu i vrsti crtičnog koda.
cv2.imshow ("Čitač crtičnih kodova", okvir)

Sada u posljednjem koraku provjerite je li pritisnuta tipka 's', a zatim prekinite glavnu petlju i započnite postupak čišćenja.
key = cv2.waitKey (1) & 0xFF # ako se pritisne tipka `s`, prekida se iz petlje ako je key == ord (" s "): break print (" čišćenje… ") csv.close () cv2.destroyAllWindows () nasuprot stop ()
Testiranje Raspberry Pi skenera QR koda
Kada je vaše postavljanje spremno, pokrenite program za čitanje QR koda. Vidjet ćete prozor koji prikazuje prikaz uživo s vaše kamere, a sada možete predočiti crtične kodove ispred PI kamere. Kad pi dekodira crtični kôd, oko njega će nacrtati crveni okvir s podacima crtičnog koda i crtičnim kodom kao što je prikazano na slici ispod:

Na ovaj način možete jednostavno izraditi čitač QR kodova Raspberry Pi kamere pomoću samo ploče Raspberry Pi i Pi kamere ili USB kamere.
Radni video i cjeloviti kôd za ovaj projekt dati su u nastavku.
