Kako stvoriti i dekodirati QR kôd pomoću Pythona

Kako stvoriti i dekodirati QR kôd pomoću Pythona

QR kôd (kôd za brzi odgovor) je vrsta matričnog barkoda koji pohranjuje kodirane podatke. Nazvan je kodom za brzi odgovor zbog sposobnosti pohranjivanja i pristupa velikim podacima u najkraćem vremenu. Ove QR kodove možete pronaći posvuda: plakate, časopise, kino dvorane, web stranice, teretane, oglase itd.





Pomoću Pythona možete generirati vlastiti QR kôd, prilagoditi ga i dekodirati podatke iz QR koda.





Postavite Python okruženje

Preporuča se postavljanje izoliranog okruženja za Python projekte. Na taj način možete razumjeti više o ovisnostima projekta.





Stvaranje virtualnog okruženja

Možeš stvoriti virtualno okruženje u Pythonu na nekoliko načina: virtualenv, virtualenvwrapper ili Anaconda distribucija. Ovdje ćemo koristiti virtualenv za stvaranje virtualnog okruženja.

  1. Izradite mapu pomoću mkdir [mapa] naredbu, gdje želite stvoriti ovaj projekt.
  2. Tip cd [Mapa] u naredbenom retku za prelazak u novi direktorij.
  3. Tip virtualenv [Naziv okoliša] za stvaranje virtualnog okruženja.
  4. Aktivirajte virtualno okruženje upisivanjem [Naziv okruženja] Skripte aktiviraj

Instalirajte potrebne pakete

Instalirajte potrebne Python pakete pomoću naredbe pip. Uvjerite se da imate pip instaliran na vašem sustavu .



Pokrenite sljedeću naredbu u naredbenom retku.

pip3 install opencv-python qrcode numpy Image

Ako ne želite instalirati sve pakete odjednom, možete ih instalirati jedan po jedan kao:





pip3 install opencv-python

Time se instalira paket opencv-python koji se uglavnom koristi za računalni vid, strojno učenje i obradu slika.

pip3 install qrcode

Time se instalira qrcode python paket koji se koristi za generiranje i čitanje QR kodova.





pip3 install numpy

Time se instalira numpy python paket koji se koristi za rad s nizovima.

pip3 install Image

Time se instalira Image python paket koji pruža brojne funkcije za učitavanje slika iz datoteka i stvaranje novih slika.

Generirajte QR kôd

Za generiranje koda stvorite novu datoteku s .py proširenje koje će imati kôd za generiranje QR koda.

Zalijepite sljedeći kôd u svoju Python datoteku i pokrenite program.

prijenos s jednog google pogona na drugi
import qrcode
# Data for which you want to make QR code
# Here we are using the URL of the MakeUseOf website
data = 'https://www.makeuseof.com/'
# File name of the QR code Image
# Change it with your desired file name
QRCodefile = 'MUOQRCode.png'
# Generating the QR code
QRimage = qrcode.make(data)
# Saving image into a file
QRimage.save(QRCodefile)

Ovo će stvoriti sliku QR koda (MUOQRCode.png) za date podatke (u ovom slučaju, www.makeuseof.com ). Generirani QR kôd izgledat će otprilike ovako:

Generirajte prilagođeni QR kôd

QR kôd možete prilagoditi nevjerojatnim značajkama biblioteke qrcode. Možete promijeniti boju ispune, boju pozadine, veličinu slike, veličinu okvira i debljinu obruba QR koda.

Promjena veličine slike i okvira

Veličinu slike QR koda možete promijeniti pomoću verzija parametar u klasi QRCode. Prihvaća cijeli broj između 1 i 40 gdje je 1 ekvivalent matrice 21x21, a 40 ekvivalent matrice 185x185. Imajte na umu da se podaci ne uklapaju u navedenu veličinu, verzija će se automatski povećati.

Slično, možete promijeniti veličinu okvira pomoću box_size parametar u klasi QRCode. Određuje piksele svakog okvira u QR kodu.

# Importing libraries
import qrcode
import numpy as np
# Data which for you want to make QR code
# Here we are using URL of MakeUseOf website
data = 'https://www.makeuseof.com/'
# Name of the QR code Image file
QRCodefile = 'CustomisedImgBoxQRCode.png'
# instantiate QRCode object
qrObject = qrcode.QRCode(version=1, box_size=12)
# add data to the QR code
qrObject.add_data(data)
# compile the data into a QR code array
qrObject.make()
image = qrObject.make_image()
image.save(QRCodefile)
# print the image size (version)
print('Size of the QR image(Version):')
print(np.array(qrObject.get_matrix()).shape)

Bit će generirana sljedeća slikovna datoteka QR koda:

Također će se prikazati sljedeći izlaz-

Size of the QR image(Version):
(33, 33)

Napominjemo da se verzija automatski povećava prema veličini podataka.

Promjena boje ispune

Boju ispune QR koda možete promijeniti pomoću ispuni_boju parametar.

# Importing library
import qrcode
# Data for which you want to make QR Code
# Here we are using URL of MakeUseOf website
data = 'https://www.makeuseof.com/'
# Name of the QR Code Image file
QRCodefile = 'CustomisedFillColorQRCode.png'
# instantiate QRCode object
qrObject = qrcode.QRCode()
# add data to the QR code
qrObject.add_data(data)
# compile the data into a QR code array
qrObject.make()
image = qrObject.make_image(fill_color='red')
# Saving image into a file
image.save(QRCodefile)

Bit će generirana sljedeća slikovna datoteka QR koda:

Promjena boje pozadine

Boju pozadine QR koda možete promijeniti pomoću stražnja_boja parametar.

# Importing library
import qrcode
# Data for which you want to make QR Code
# Here we are using URL of MakeUseOf website
data = 'https://www.makeuseof.com/'
# Name of the QR Code Image file
QRCodefile = 'CustomisedBGColorQRCode.png'
# instantiate QRCode object
qrObject = qrcode.QRCode()
# add data to the QR code
qrObject.add_data(data)
# compile the data into a QR code array
qrObject.make()
image = qrObject.make_image(back_color='blue')
# Saving image into a file
image.save(QRCodefile)

Bit će generirana sljedeća slikovna datoteka QR koda:

Promjena debljine ruba

Debljinu ruba QR koda možete promijeniti pomoću granica parametar u klasi QRCode.

# Importing libraries
import qrcode
# Data for which you want to make QR Code
# Here we are using URL of MakeUseOf website
data = 'https://www.makeuseof.com/'
# Name of the QR Code Image file
QRCodefile = 'CustomisedBorderQRCode.png'
# instantiate QRCode object
qrObject = qrcode.QRCode(border=10)
# add data to the QR code
qrObject.add_data(data)
# compile the data into a QR code array
qrObject.make()
image = qrObject.make_image()
image.save(QRCodefile)

Bit će generirana sljedeća slikovna datoteka QR koda:

Dekodirajte QR kod pomoću slike QR koda

Možete dekodirati podatke sa slike QR koda pomoću Pythonove biblioteke OpenCV. OpenCV ima ugrađen detektor QR koda. Pomoću detektora možete dekodirati podatke iz QR koda.

# Import Library
import cv2
# Name of the QR Code Image file
filename = 'MUOQRCode.png'
# read the QRCODE image
image = cv2.imread(filename)
# initialize the cv2 QRCode detector
detector = cv2.QRCodeDetector()
# detect and decode
data, vertices_array, binary_qrcode = detector.detectAndDecode(image)
# if there is a QR code
# print the data
if vertices_array is not None:
print('QRCode data:')
print(data)
else:
print('There was some error')

Ako je prikazana slika valjani QR kôd, prikazat će se dekodirani podaci. U tom slučaju generirat će se sljedeći izlaz-

QRCode data:
https://www.makeuseof.com/

Dekodirajte QR kod uživo pomoću web kamere

Većinu vremena ljudi koriste web kameru za skeniranje QR kodova. Koristeći potencijal Python i OpenCV knjižnice, možete jednostavno dekodirati podatke iz QR koda.

import cv2
# initalize the camera
cap = cv2.VideoCapture(0)
# initialize the OpenCV QRCode detector
detector = cv2.QRCodeDetector()
while True:
_, img = cap.read()
# detect and decode
data, vertices_array, _ = detector.detectAndDecode(img)
# check if there is a QRCode in the image
if vertices_array is not None:
if data:
print('QR Code detected, data:', data)
# display the result
cv2.imshow('img', img)
# Enter q to Quit
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()

Kada izvršite ovaj kôd, vaša web kamera će se automatski otvoriti. Jednostavno držite QR kôd ispred web kamere i podaci će biti dekodirani i prikazani u naredbenom retku.

Kodiranje i dekodiranje QR koda postalo je jednostavno

Pomoću ovog članka možete jednostavno kodirati, dekodirati i prilagoditi QR kodove kako želite. Možete čak i stvoriti potpunu aplikaciju za skeniranje-generiranje QR koda pomoću priloženog koda.

Postoje brojni kreativni načini korištenja QR kodova. Budite kreativni i koristite QR kodove kako želite.

Udio Udio Cvrkut E -pošta Kako skenirati QR kôd na Androidu i iPhoneu

Skener QR koda je unaprijed instaliran i na Androidu i na iPhoneu. Evo kako ga koristiti.

Pročitajte Dalje
Povezane teme
  • Programiranje
  • QR kod
  • Piton
O autoru Yuvraj Chandra(Objavljeno 60 članaka)

Yuvraj je student preddiplomskog studija Računarstva na Sveučilištu u Delhiju u Indiji. Oduševljen je Full Stack web razvojem. Kad ne piše, istražuje dubinu različitih tehnologija.

hyper-v vs vmware radna stanica
Više od Yuvraja Chandre

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu