eightban's memo

残しておきたい記事をまとめてみました。このブログに書いてあるドキュメントやブログで配布しているファイルの使用によって発生するいかなる損害に対してもこのブログの管理者は責任を負いません。使用する場合は自己責任のもとに使用してください。

Python

たくさんのQRコードを読み込む方法

更新日:

作成したQRコードがたくさんある時に読み込めるか確認したい時に便利です

コード

# -*- coding: utf-8 -*-

import os
import cv2
from pyzbar.pyzbar import decode
import time
import io, sys
import numpy as np
from PIL import Image

def read_qr_codes_in_folder(folder_path):
    qr_codes_data = []
    qr_codes_d = []

    for filename in os.listdir(folder_path):
        if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
            image_path = os.path.join(folder_path, filename)

            # Pillowで画像ファイルを開く
            pil_img = Image.open(image_path)
            # PillowからNumPyへ変換
            image = np.array(pil_img)
            # カラー画像のときは、RGBからBGRへ変換する
            if image.ndim == 3:
                image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)

#            image = cv2.imread(image_path)
            
            decoded_objects = decode(image)

            for obj in decoded_objects:
                if obj.type == 'QRCODE':
                    qr_data = obj.data.decode('utf-8')
             #       qr_data = qr_data.encode("shift-jis").decode("utf-8", errors="ignore")

                    qr_codes_data.append(qr_data)
                    qr_codes_d.append(filename)
                    print(f"ファイル: {filename}, QRコードのデータ: {qr_data}")
                    time.sleep(0.5)
                else:
                    print(f"ファイル: {filename}, QR")
                    time.sleep(0.5)
            
    if not qr_codes_data:
        print("QRコードが見つかりませんでした。")
        
        
    filename2 = "b_data.txt"

    with open(filename2, 'w') as file:
        for item in qr_codes_d:
            item = item.encode('sjis', errors='ignore').decode('sjis')

            file.write(str(item) + '\n')


    return qr_codes_data

if __name__ == "__main__":
#:    folder_path = "D:\in"  # QRコード画像が含まれるフォルダーのパスを指定
    folder_path = "D:\in"  # QRコード画像が含まれるフォルダーのパスを指定
    qr_codes_data = read_qr_codes_in_folder(folder_path)
    print("読み込んだQRコードのデータ:", qr_codes_data)

-Python

Copyright© eightban's memo , 2024 All Rights Reserved Powered by STINGER.