PCでQRコードを読む

技術関連

皆さん、請求書のQRコードどうやって読んでいますか?

携帯電話だったらQRコードスキャナがあるので、簡単に読み込むことができますね。

でも、情報とか、クレジット番号とか入れるときにPCのほうが楽じゃないですか?

ということで、QRコードを読み込んで、そのリンクのページを表示するプログラムをPythonで作ろうと思います。

まずはQRコードを読み込むために、カメラデバイスから画像を読み込む必要がありますので、OpenCVをインストールします。

pip install opencv-python

次にQRコードを読み込むプログラムのインストールです

pip install pyzbar

最後にnumpyをインストールします。

pip install numpy

さて、ライブラリを読み込んだらプログラムを作ります。

import cv2
from pyzbar.pyzbar import decode
import numpy as np
import webbrowser

cap = cv2.VideoCapture(0)

opened_urls = set() # 同じURLを何度も開かないように記録

while True:
 ret, frame = cap.read()
 if not ret:
  break

 for barcode in decode(frame):
    qr_data = barcode.data.decode('utf-8')
    qr_type = barcode.type

    # URLならブラウザで開く(重複防止)
    if qr_data.startswith('http') and qr_data not in opened_urls:
        print(f"Opening URL: {qr_data}")
        webbrowser.open(qr_data)
        opened_urls.add(qr_data)

    # 枠を描画
    pts = barcode.polygon
    pts = [(pt.x, pt.y) for pt in pts]
    cv2.polylines(frame, [np.array(pts)], True, (0, 0, 0xff), 5)

  cv2.imshow('QR Scanner', frame)
  if cv2.waitKey(1) == ord('q'):
     break

cap.release()
cv2.destroyAllWindows()

QRコードが読み込まれたらブラウザで開きます。

終了のときは「qキー」を押すと終了します。

タイトルとURLをコピーしました