Condivisione della tecnologia

Inizia con il riconoscimento di immagini e testo senza difficoltà ~ Ocr semplice e converti pdf in txt basato su Feipian

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Inserisci qui la descrizione dell'immagine

Prefazione

Questo PDF è adatto agli utenti Windows alle prime armi che non hanno conoscenze di base sul riconoscimento visivo. Capo, per favore fai una deviazione~~
Avviso:
L'OCR del PDF di questo progetto non fa nulla per gestire le interferenze come tabelle, testo di disegni, filigrane, ecc. Pertanto, ci auguriamo che i PDF in cui utilizzi questa funzione non contengano il più possibile questi elementi di interferenza per evitare di influenzare il effetto di traduzione.

processi

1. Costruisci l'ambiente

Crea un ambiente Python virtuale utilizzando conda

conda crate -n pp python==3.11

2. Pacchetto di installazione

Installare paddle e paddleocr
versione della GPU

pip installa paddlepaddle-gpu paddleocr

versione della CPU

pip installa paddlepaddle paddleocr

Strumento da PDF a immagine

https://github.com/oschwartz10612/poppler-windows/releases

pip installa pdf2image

3. Codice specifico

Supponiamo di avere un gruppo di file PDF nella cartella pdf e di dover convertire ciascun file PDF in un file txt corrispondente.È possibile utilizzare il seguente codice


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()


4.Attenzione

Poiché questo codice può semplicemente estrarre il testo del PDF, una volta prodotte le immagini o le tabelle, l'effetto di riconoscimento della pagina sarà deteriorato. Per favore capisci~