OpenCVでQRコードをデコードできることを知る

画像を扱うときに使うOpenCVはQRコードのデコードもできる。
import cv2
import qrcode

def decode_qrcodes(img, index=None):
	if type(img) is str: img = cv2.imread(img)
	qr = cv2.QRCodeDetector()
	(res, data, points, qrcodes) = qr.detectAndDecodeMulti(img)
	if res is False:
		print('[WARN] Decoding failed.')
		return None
	if type(index) is int:
		if index in range(len(data)): return data[index]
		print('[WARN] The index is out of the range.')
		return None
	return data

# qrcode.constants.ERROR_CORRECT_L = 1, M = 0, Q = 3, H = 2
def create_qrcode(data, error_correction=0, box_size=2, border=2, path=None):
	img = qrcode.make(data, error_correction=error_correction, box_size=box_size, border=border)
	if path is not None: img.save(str(path))
	return img

file_name = 'test_qrcode.png'
img = create_qrcode('意識が\n遠のくほど\n暑い夏', path=file_name)
#img.save(file_name)
data = decode_qrcodes(file_name)
print(data)
便利だ。
2020/08/15 14:32
タグ