前提・実現したいこと
現在の処理速度が遅いので速くしたいです。
画像から数字を読み取り、エクセルに出力しています。63枚の画像が入っているファイル18個をfor文でループさせ読み込みエクセルに出力しています。1枚の画像から3箇所の数字を抜き取るため、ピクセル指定しています。
そこまで画像が膨大にあるわけではないと思うのですが、エクセルに出力まで数十分以上?かかっていしまいます。(時間がかかりすぎて中断させていますが、途中までのデータが出力できているのでコードは正しいと思います。)
そこで、処理速度が速くなるように、現在のコードの改良などについてアドバイスをいただきたいです。
該当のソースコード
Python
1with pd.ExcelWriter("template.xlsx",mode='a',engine='openpyxl')as writer: 2 for j in range(1,4): 3 cluster=[] 4 for i in range(1,64): 5 img_i = "pic/type("+str(j)+")/data (" +str(i)+").png" 6 img = Image.open(img_i) 7 # 切り抜き 8 img_1 = img.crop((266, 519, 462, 563)) 9 img_2 = img.crop((286, 563, 462, 608)) 10 img_3 = img.crop((266, 608, 462, 652)) 11 # OCR実行 12 builder = pyocr.builders.TextBuilder(tesseract_layout=6) 13 result1 = tool.image_to_string(img_1,builder=builder) 14 result2 = tool.image_to_string(img_2,builder=builder) 15 result3 = tool.image_to_string(img_3,builder=builder) 16 list=[result1,result2,result3] 17 cluster.append(list) 18 df=pd.DataFrame(cluster) 19 df.to_excel(writer,sheet_name="type("+str(j)+")a")
試したこと
コード作成当初より大きく文量を減らし、for文でまとめることができましたが、処理速度が遅いです。
補足情報
anacondaのJupiter Labを使っています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/15 08:46