windows11 補助金・助成金

AIでQRコードを読み取る方法【実体験レポート】

時々、商工会議所からセミナーの案内メールが届きます。ところが案内にはQRコードだけが貼り付けてあり、URLが記載されていません。パソコンでメールを受信している場合、わざわざスマートフォンを取り出してQRコードを読み取るのは手間がかかります。「パソコン画面に表示されているQRコードをそのまま読み取って、URLを開くことはできないのか」と思い、いろいろな方法を試してみました。しかし、一筋縄ではいかず、なかなかうまくいきません。現時点では以下の方法がベストのようです。

QRコードの読み取り


AIチャットツール(ChatGPT / Gemini)で読み取る方法を試してみた

まず思いつくのが、ChatGPTやGeminiなどのAIにQRコードの画像を送って読み取ってもらう方法です。

手順としては非常にシンプルです:

  • ChatGPTやGeminiのチャット画面を開く
  • QRコードの画像ファイルを添付してアップロードする
  • 「このQRコードの内容を読み取ってください」と指示する
  • AIがQRコードを解析し、URLや文字列などの内容を返答する

しかし、実際に試してみると以下のような返答が返ってきました:

「申し訳ありませんが、私のようなAIの画像認識機能では、画像内のQRコードを直接読み取ってリンク先のURL(ウェブサイトの番地)を解読することができません。」

なぜAIはQRコードを読み取れないのか

AIからの説明によると、理由は以下の通りです。

対話型AIは画像の中に何が写っているか(文字、人、風景など)の「パターン」をふんわりと認識するのは得意です。しかしQRコードは「白と黒のドットの厳密な配列を、特定の計算式(アルゴリズム)に当てはめてデジタルデータに変換する」という処理が必要です。現在の画像認識の仕組みは、このような計算処理を直接行うようには作られていないため、解読ができないのです。

つまり、ChatGPTやGeminiなどのAIチャットツールでQRコードを読み取ることは現時点では基本的にできません。


パソコン画面のQRコードを読み取る現実的な方法

① オンラインQRリーダーを使う(最もおすすめ)

実際に複数のサービスを試した結果、qrcode.red が最も使いやすいです。広告もなくシンプルで、操作もわかりやすいのでまずこちらを試してみてください。

手順:

  1. Win + Shift + S でQRコード部分だけをスクリーンショットで切り取る
  2. qrcode.red をブラウザで開く
  3. 切り取った画像をアップロードする
  4. QRコードの内容(URLや文字列)が表示される

インストール不要、Windows・Mac両対応、ブラウザだけで完結します。


② Pythonコードで実装する方法(自動化・開発向け)

プログラムとしてQRコード読み取りを自動化したい場合は、Pythonの pyzbar ライブラリと OpenCV を組み合わせる方法が定番です。

ライブラリのインストール(コマンドプロンプトで実行):

pip install opencv-python pyzbar

静止画像からQRコードを読み取るコード:

import cv2
from pyzbar.pyzbar import decode

# 画像のパスを指定
image = cv2.imread(r"C:\Users\syste\qr.png")

# QRコードを読み取る
decoded_objects = decode(image)

if decoded_objects:
    for obj in decoded_objects:
        print("✅ QRコードの内容:", obj.data.decode("utf-8"))
else:
    print("❌ QRコードが検出されませんでした")

パソコン画面に表示されているQRコードをリアルタイムで読み取るコード:

コマンドプロンプトを表示するとQRコードの画面が隠れてしまうという問題があります。そこで、スクリプト実行後に5秒間の猶予を設けて、その間にQRコードの画面を前面に出す方法が有効です。

まず pyautogui をインストールします:

pip install pyautogui

次にスクリプトを実行します:

import pyautogui
import cv2
import numpy as np
from pyzbar.pyzbar import decode
import time

print("5秒後にスクリーンショットを撮ります...")
print("QRコードの画面を表示してください!")

# 5秒待つ(この間にQRコードの画面を前面に出す)
time.sleep(5)

# 画面全体をスクリーンショット
screenshot = pyautogui.screenshot()

# OpenCV形式に変換
image = cv2.cvtColor(np.array(screenshot), cv2.COLOR_RGB2BGR)

# QRコードを読み取る
decoded_objects = decode(image)

if decoded_objects:
    for obj in decoded_objects:
        print("✅ QRコードの内容:", obj.data.decode("utf-8"))
else:
    print("❌ QRコードが検出されませんでした")

使い方:

  1. コマンドプロンプトでスクリプトを実行する
  2. 「5秒後に撮ります」と表示されたらすぐにQRコードの画面をクリックして前面に出す
  3. 5秒後に自動的にスクリーンショットが撮られてQRコードを読み取る
  4. 読み取り後にコマンドプロンプトをクリックして結果を確認する

time.sleep(5) の数字を大きくすれば待ち時間を延ばすことができます。


まとめ

方法難易度コード不要おすすめ度
AIチャット(ChatGPT等)★☆☆❌ 現時点では読み取り不可
qrcode.red(オンライン)★☆☆◎ 最もお手軽で確実
Python pyzbar + OpenCV★★☆◎ 自動化・開発向けに最適
Python 画面キャプチャ版★★☆◎ 画面表示中のQRコードに対応

パソコン画面のQRコードを読み取りたい場合、最も手軽で確実な方法は qrcode.red へのスクリーンショットアップロードです。自動化や繰り返し処理が必要な場合はPythonスクリプトが強力な選択肢になります。AIチャットツールへの期待は現時点では難しいですが、今後の技術進化に注目です。

次回は下記の画面のような入力欄にAIで自動入力する方法を説明します。

AIによる自動入力

-windows11, 補助金・助成金