QRコードの生成
PythonでQRコードを生成するには、pyqrcode
というライブラリを使用します。以下にその使用例を示します。
import pyqrcode
# 文字情報を含んだQRコードの生成
a = pyqrcode.create(content="Hello From Jetsonnano", error='H')
a.png(file='test.png', scale=6)
# URL情報を含んだQRコードの生成
b = pyqrcode.QRCode('https://www.youtube.com/channel/UCDYbu9aViDvkubFcwgbbKDA', error='M')
b.png('test2.png', scale=6)
バーコードの生成
バーコードの生成にはpython-barcode
というライブラリを使用します。以下にその使用例を示します。
import barcode
from barcode.writer import ImageWriter
d = '938469387183'
a = barcode.get_barcode_class('ean13')
b = a(d, writer=ImageWriter())
c = b.save('barcode')
QRコードとバーコードの読み取り
QRコードとバーコードの読み取りにはpyzbar
というライブラリを使用します。以下にその使用例を示します。
from pyzbar.pyzbar import decode
from PIL import Image
d = decode(Image.open('qrcode.png'))
print(d[0].data.decode("utf-8"))
OpenCVを使った読み取り
OpenCVを使ってQRコードまたはバーコードを検知したら画面の上にその情報を表示させます。
from pyzbar.pyzbar import decode
import cv2
cap = cv2.VideoCapture(0)
font = cv2.FONT_HERSHEY_SIMPLEX
while cap.isOpened():
ret, frame = cap.read()
if ret == True:
d = decode(frame)
if d:
for barcode in d:
x, y, w, h = barcode.rect
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 0, 255), 2)
barcodeData = barcode.data.decode('utf-8')
frame = cv2.putText(frame, barcodeData, (x, y-10), font, .5, (0, 0, 255), 2, cv2.LINE_AA)
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
以上がPythonでQRコードとバーコードを生成・読み取る方法になります。.