Kako ustvariti in dekodirati QR kodo z uporabo Pythona

Kako ustvariti in dekodirati QR kodo z uporabo Pythona

Koda QR (koda hitrega odziva) je vrsta matrične črtne kode, ki shranjuje kodirane podatke. Koda za hiter odziv je bila poimenovana zaradi njene sposobnosti shranjevanja in dostopa do velikih podatkov v najkrajšem času. Te kode QR lahko najdete povsod: plakate, revije, kino dvorane, spletne strani, telovadnice, oglase itd.





Z uporabo Pythona lahko ustvarite svojo kodo QR, jo prilagodite in dekodirate podatke iz kode QR.





Nastavite okolje Python

Priporočljivo je, da za projekte Python nastavite izolirano okolje. S tem lahko bolje razumete odvisnosti projekta.





Ustvarjanje virtualnega okolja

Ti lahko ustvarite virtualno okolje v Pythonu na več načinov: virtualenv, virtualenvwrapper ali distribucija Anaconda. Tukaj bomo uporabili virtualenv ustvariti virtualno okolje.

  1. Ustvarite mapo z mkdir [mapa] ukaz, kjer želite ustvariti ta projekt.
  2. Vrsta cd [mapa] v ukaznem pozivu za premik v nov imenik.
  3. Vrsta virtualenv [Ime okolja] ustvariti virtualno okolje.
  4. Aktivirajte navidezno okolje z vnosom [Ime okolja] Skripte aktiviraj

Namestite potrebne pakete

Namestite potrebne pakete Python z ukazom pip. Prepričajte se, da imate pip, nameščen v vašem sistemu .



V ukaznem pozivu zaženite naslednji ukaz.

pip3 install opencv-python qrcode numpy Image

Če ne želite namestiti vseh paketov naenkrat, jih lahko namestite enega za drugim kot:





pip3 install opencv-python

S tem se namesti paket opencv-python, ki se večinoma uporablja za računalniški vid, strojno učenje in obdelavo slik.

pip3 install qrcode

S tem se namesti paket qrcode python, ki se uporablja za ustvarjanje in branje kod QR.





pip3 install numpy

S tem se namesti paket numpy python, ki se uporablja za delo z matrikami.

pip3 install Image

Ta namesti paket Image python, ki ponuja številne funkcije za nalaganje slik iz datotek in ustvarjanje novih slik.

Ustvarite QR kodo

Če želite ustvariti kodo, ustvarite novo datoteko z .py razširitev, ki bo imela kodo za generiranje QR kode.

Prilepite naslednjo kodo v datoteko Python in zaženite program.

aplikacije za pošiljanje denarja prijateljem
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)

To bo ustvarilo sliko kode QR (MUOQRCode.png) za podane podatke (v tem primeru www.makeuseof.com ). Ustvarjena koda QR bo videti nekako tako:

Ustvarite prilagojeno kodo QR

QR kodo lahko prilagodite z neverjetnimi funkcijami knjižnice qrcode. Barvo polnila, barvo ozadja, velikost slike, velikost polja in debelino obrobe kode QR lahko spremenite.

Spreminjanje velikosti slike in škatle

Velikost slike kode QR lahko spremenite s pomočjo različico parameter v razredu QRCode. Sprejema celo število med 1 in 40, kjer je 1 ekvivalent matrice 21x21, 40 pa 185x185 matrike. Upoštevajte, da podatki ne ustrezajo določeni velikosti, zato se bo različica samodejno povečala.

Podobno lahko velikost polja spremenite z box_size parameter v razredu QRCode. Določa slikovne pike vsakega polja v kodi QR.

# 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)

Ustvarila se bo naslednja slikovna datoteka s kodo QR:

Prikazan bo tudi naslednji izhod-

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

Upoštevajte, da se različica samodejno poveča glede na velikost podatkov.

Spreminjanje barve polnila

Barvo polnjenja kode QR lahko spremenite s pomočjo fill_color parameter.

# 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)

Ustvarila se bo naslednja slikovna datoteka s kodo QR:

Spreminjanje barve ozadja

Barvo ozadja kode QR lahko spremenite s pomočjo back_color parameter.

# 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)

Ustvarila se bo naslednja slikovna datoteka s kodo QR:

Spreminjanje debeline meje

Debelino obrobe kode QR lahko spremenite s pomočjo meja parameter v razredu 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)

Ustvarila se bo naslednja slikovna datoteka s kodo QR:

Dekodirajte QR kodo s pomočjo slike QR kode

Podatke iz slike QR kode lahko dekodirate s pomočjo Pythonove knjižnice OpenCV. OpenCV ima vgrajen detektor kode QR. Z detektorjem lahko dekodirate podatke iz kode QR.

# 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')

Če je predložena slika veljavna koda QR, bodo prikazani dekodirani podatki. V tem primeru bo ustvarjen naslednji izhod-

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

Z spletno kamero dekodirajte QR kodo v živo

Ljudje večinoma uporabljajo spletno kamero za skeniranje QR kod. Z uporabo potenciala knjižnice Python in OpenCV lahko preprosto dekodirate podatke iz kode QR.

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()

Ko izvedete to kodo, se bo vaša spletna kamera samodejno odprla. Preprosto držite kodo QR pred spletno kamero in podatki bodo dekodirani in prikazani v ukaznem pozivu.

Kodiranje in dekodiranje QR kode je postalo preprosto

S tem člankom lahko preprosto kodirate, dekodirate in prilagodite kode QR, kot želite. S pomočjo priložene kode lahko celo ustvarite celotno aplikacijo Scanner-Generator kode QR.

Obstaja več ustvarjalnih načinov uporabe QR kod. Bodite ustvarjalni in uporabite QR kode, kot želite.

Deliti Deliti Cvrkutati E-naslov Kako skenirati kodo QR v napravah Android in iPhone

Optični bralnik kod QR je vnaprej nameščen v Androidu in iPhoneu. Tukaj je opisano, kako ga uporabiti.

Preberite Naprej
Sorodne teme
  • Programiranje
  • QR koda
  • Python
O avtorju Yuvraj Chandra(Objavljenih 60 člankov)

Yuvraj je dodiplomski študent računalništva na Univerzi v Delhiju v Indiji. Navdušen je nad spletnim razvojem Full Stack. Ko ne piše, raziskuje globino različnih tehnologij.

igre za igranje na google home
Več od Yuvraja Chandre

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, če se želite naročiti