使用PaddleOCR批量提取图片里面的文字

使用PaddleOCR批量提取图片里面的文字

import os
import csv
from paddleocr import PaddleOCR

# 指定图片文件夹和存储路径
image_folder = 'image/other'
output_file= 'output.csv'

os.makedirs(output_file, exist_ok=True)

all_texts = []
failed_images = []
ocr = PaddleOCR(use_angle_cls=True, lang='ch',use_gpu=True,show_log=False) 
#use_gpu是否使用GPU,默认为True。 use_angle_cls,是否使用方向分类器。  show_log,是否输出一些日志。


from tqdm import tqdm 
image_list = [image_name for image_name in os.listdir(image_folder) if image_name.lower().endswith(('.png', '.jpg', '.jpeg'))]
for image_name in tqdm(image_list, desc="Processing Images", unit="image"):
    if image_name.lower().endswith(('.png', '.jpg', '.jpeg')):
        image_path = os.path.join(image_folder, image_name)
        result = ocr.ocr(image_path, cls=True)
        if result:
            try:
                # 提取文字并拼接成一个字符串
                extracted_text = ' '.join([text[1][0] for line in result for text in line])
    
                # 后处理,例如去除多余的空格
                extracted_text = ' '.join(extracted_text.split())
                all_texts.append([image_name, extracted_text])
            except Exception as e:
                print(f"Error processing {image_name}: {e}")
                failed_images.append(image_name)
                continue
        else:
            print(f"No text found in {image_name}")
            failed_images.append(image_name)
            continue
            

with open(output_file, mode='w', newline='', encoding='utf-8-sig') as file:
    writer = csv.writer(file)
    writer.writerow(['Original Filename', 'Extracted Text'])  # 写入表头
    writer.writerows(all_texts)
    
print(f"所有图片的文字已提取并保存到CSV文件夹:{output_folder}")

# 输出未提取到文字的图像名称
if failed_images:
    print("以下图片未能提取到文字:")
    with open('failed_images.txt', mode='w', encoding='utf-8') as failed_file:
        for image in failed_images:
            print(image)
            failed_file.write(f"{image}\n")
        
else:
    print("所有图片均成功提取到文字。")

安装paddleocr 可能会遇到的问题:

sudo apt update
sudo apt install libgl1-mesa-glx

参考: Python ImportError libGL.so.1 cannot open shared object file No such file or directory 解决方案

参考博客:【Python】paddleocr快速使用及参数详解

【解决方法】libGL.so.1: cannot open shared object file: No such file or directory()

Python ImportError libGL.so.1 cannot open shared object file No such file or directory 解决方案

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值