2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Ce pdf convient aux utilisateurs Windows purement novices qui n’ont aucune connaissance de base en reconnaissance visuelle. Patron, s'il vous plaît, faites un détour~~
Avis:
L'OCR du PDF dans ce projet n'effectue aucun traitement pour les interférences telles que les tableaux, les dessins de texte, les filigranes, etc. Par conséquent, j'espère que les PDF qui utilisent cette fonction ne contiendront pas autant que possible ces éléments d'interférence pour éviter d'affecter l’effet de traduction.
Créer un environnement Python virtuel à l'aide de conda
conda crate -n pp python==3.11
Installer la pagaie et le paddleocr
version GPU
pip installe paddlepaddle-gpu paddleocr
version du processeur
pip installer paddlepaddle paddleocr
outil pdf en image
https://github.com/oschwartz10612/poppler-windows/releases
pip installe pdf2image
Supposons que nous ayons un tas de fichiers PDF dans le dossier PDF et que nous devions convertir chaque fichier PDF en un fichier txt correspondant.Vous pouvez utiliser le code suivant
from pdf2image import convert_from_path
import cv2
import numpy as np
from PIL import Image
import os
# 将 PDF 文件转换为图片列表
files = os.listdir('pdf')
for file in files:
if not file.endswith('.pdf'):
print(file)
continue
txt = file.replace('.pdf', '.txt')
if os.path.exists('txt/' txt):
continue
txt_writer = open('txt/' txt, 'w',encoding='utf-8')
images = convert_from_path('pdf/' file)
# print(type(images))
# print(images[0])
# image = cv2.cvtColor(np.array(images[0]), cv2.COLOR_RGB2BGR)
from paddleocr import PaddleOCR, draw_ocr
# 创建 PaddleOCR 实例
ocr = PaddleOCR(use_angle_cls=True, lang='ch',use_gpu=True) # 默认使用英文模型,可以通过 lang 参数切换到中文模型
# 遍历每一张图片并识别文字
for i, image in enumerate(images):
print('第{}张图片'.format(i 1))
# 转换图片为可用于识别的格式
# source = image.convert('RGB')
image = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR) # image.save(f'page_{i}.jpg')
# 识别图片中的文字
result = ocr.ocr(image, cls=True)
# 打印识别结果
try:
for lines in result:
for line in lines:
# print(line[1][0])
txt_writer.write(line[1][0] 'n')
except:
print(file '识别失败')
txt_writer.close()
Étant donné que ce code ne peut extraire que simplement le texte du PDF, une fois les images ou les tableaux produits, l'effet de reconnaissance de la page sera détérioré. Veuillez comprendre ~.