检测 pdf 页面是否颠倒

Log*_*kos 4 php tesseract ghostscript pdftk

我们使用 php、pypdfocr 和 pdftotext 进行 OCR 并从已扫描或传真给我们的文档中提取文本。问题是当文档被颠倒扫描或传真时,或者某些页面打算横向阅读时(因此文本在页面上旋转 90 度)

我尝试过的事情:

  • 在 tessdata cp eng.traineddata osd.traineddata 中

对于具有 90 度文本的页面,生成的 OCR 文本图层还不错,但是颠倒的页面,它会 OCR 中的每个单词并将其翻转到位,这样如果“这是一个测试”出现在文档中但颠倒了,那么文本层可能会显示“test a is This”

如果有一种方法可以检测到页面上下颠倒,我可以在通过 OCR 运行之前使用 pdftk 旋转页面(或者,如果是 OCR,我可以删除文本层,然后在 OCR 中再次运行它)使用pdftk进行旋转)

此时可以从 Linux CLI 执行的任何解决方案都是可行的解决方案。

use*_*678 5

您可以使用 tesseract (>=3.03 ?) 轻松获取有关页面方向的信息。例如

$ tesseract image.png -  -psm 0
Run Code Online (Sandbox Code Playgroud)

将产生这个输出

Orientation: 3
Orientation in degrees: 90
Orientation confidence: 25.40
Script: 1 
Script confidence: 18.40
Run Code Online (Sandbox Code Playgroud)

根据此信息,您可以调整图像旋转。如何在 python 中执行此操作的示例可以在脚本Fix imagerotation with tesseract中找到。

  • 对于 tesseract v4,这似乎有效: `tesseract image.png - --psm 0` (2认同)