Pythonによるデータ分析・機械学習ブログ

Pythonによるデータの前処理・グラフ化、機械学習、統計解析、画像処理、Webスクレイピング、自然言語処理の基礎について紹介していきます。

MENU

【Python】QRコードの生成と読み取り

1. はじめに

 本記事では、Pythonライブラリの「qrcodeを用いたQRコードの生成」と「pyzbarを用いたQRコードの読み取り」の基本的な手法を紹介します。

 

2. qrcodeを用いたQRコードの生成

まずはライブラリのインストールです。

qrcodeを用いたQRコードの生成は以下のプログラムでできます。

textの内容を変更することで様々な情報を埋め込むことができます。今回は本ブログのURLをtextとして設定し、QRコードを作成していきます。

 

上記のプログラムを実行すると、下記のようなQRコードが生成・保存されます。スマホ等のカメラアプリで読み込んでいただくと本ブログが表示されると思います。

 

3. pyzbarを用いたQRコードの読み取り

まずはライブラリのインストールです。

pyzbarを用いたQRコードの読み取りは以下のプログラムでできます。QRコードの読み取りデータからQRコードの座標、読み取ったデータ内容を再度画像に描画しています。ここでは上記で作成したQRコードを読み込んでいます。

上記を実行すると下図のような画像データが保存されます。QRコードの周囲を緑色の線で囲み、読み取ったデータを上部に記載しています。

なお、上記プログラムを実行した際のdecode_dataの中身は下記になっています。dataは読み取ったデータ、rectはQRコードの左上座標(left, top)と幅高さ(width、height)の長さ、polygonは多角形の座標を示しています。上記では多角形の座標を採用して描画しています。

 

なお、スマホカメラ、Webカメラ、IPカメラなどで撮影したカメラでは斜めになったり、そのままの画像ではダメで前処理が必要だったりするので、ご注意ください。

 

4. 参考ページ

qrcode · PyPI

pyzbar · PyPI

QRコードの生成と保存 | Python学習講座

【簡単】QRコードの作成と読み取り in Python #Python - Qiita

 

5. おわりに

 本記事では、Pythonライブラリの「qrcodeを用いたQRコードの生成」と「pyzbarを用いたQRコードの読み取り」の基本的な手法を紹介しました。QRコードを物体に貼付してカメラなどで読み取ることで、その物の判定ができたりするなど非常に便利なツールだと思うので、ぜひ活用してみてください。なお、スマホカメラ、Webカメラ、IPカメラなどで撮影したカメラでは斜めになったり、そのままの画像ではダメで前処理が必要だったりするので、ご注意ください。