EasyOCR 未向提取的文本添加正确的换行符

问题描述 投票:0回答:1

这是代码的要点:

import fitz
import easyocr
from PIL import Image

def extract_text_from_pdf(pdf_path):
    reader = easyocr.Reader(['en'], download_enabled=False)
    extracted_text = ""
    for page_number in range(pdf_document.page_count):
    
        page = pdf_document[page_number]
        resolution = 300
        zoomfactor = resolution/72.0
        pixmap = page.get_pixmap(matrix-fitz.Matrix(zoomfactor, zoomfactor))
        image = pixmap.tobytes()
        result = reader.readtext(image, paragraph=True)

        print("Page {page_number + 1} - OCR Result:") 
        for detection in result:
            extracted_text += detection[1]

    pdf_document.close()
    
return extracted_text

传递的图像看起来像这样:

但是提取的文本看起来像这样: “帐号:1234网址:xyz”

期望是:

“账号:1234

网址:xyz”

easyOCR 似乎是单独提取每个单词,而不是逐行读取图像。可能是因为一行中的单词之间有很大的空格。

你能推荐一些东西吗?

python ocr easyocr
1个回答
0
投票

根据文档,您可以指定边界框合并。

x_ths (float, default = 1.0) - 当 paragraph=True 时合并文本框的最大水平距离。 y_ths (float, default = 0.5) - 当 paragraph=True 时合并文本框的最大垂直距离。

修改其中一个应该可以解决问题😉

更新:
根据操作,将

x_ths
设置为 1000.0 确实解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.