从OCR文本中提取段落符号?

Ble*_*der 9 python ocr latex tesseract

我正在尝试从OCR的图像文本的输出中重新创建段落和缩进,如下所示:

输入(想象这是一个图像,而不是键入):

在此输入图像描述

输出(有一些错误):

在此输入图像描述

如您所见,不会保留任何段落或缩进.

使用Python,我尝试了这样的方法,但它不起作用(经常失败):

代码:

def smart_format(text):
  textList = text.split('\n')
  temp = ''

  averageLL = sum([len(line) for line in textList]) / len(textList)

  for line in textList:
    if (line.strip().endswith('!') or line.strip().endswith('.') or line.strip().endswith('?')) and not line.strip().endswith('-'):
      if averageLL - len(line) > 7:
        temp += '{{ paragraph }}' + line + '\n'
      else:
        temp += line + '\n'
    else:
      temp += line + '\n'

  return temp.replace(' -\n', '').replace('-\n', '').replace(' \n', '').replace('\n', ' ').replace('{{ paragraph }}', '\n\n      ')
Run Code Online (Sandbox Code Playgroud)

有没有人有任何建议,我可以重新创建这个布局?我正在使用旧书,所以我希望用LaTeX重新排版它们,因为创建一个Python脚本非常简单.

谢谢!

Nic*_*ell 5

您可以通过查看每个 5-10 像素水平切片的将图像分解为多个段落。尽管这通常用于从较大的图像或视频创建“有趣”的缩略图,但您也可以使用它来识别文本的存在与否。就是这样。

您将图像分成一堆水平条,每条高 5-10 像素。如果条带不“忙”,那么您可以假设那里没有文本。您可以使用它来隔离段落。现在,您可以单独提取每个段落,并将其输入到您的 OCR 中。