【问题标题】:Perform Tesseract OCR on entire directory with python使用 python 在整个目录上执行 Tesseract OCR
【发布时间】:2017-06-23 05:45:06
【问题描述】:

我在目录中有多个图像,并希望将其从图像转换为文本文件。我必须在终端中一一手动完成。这是头痛的过程。所以,我的问题是如何在包含图像的文件夹上运行我的代码。

这是将其转换为文本的终端命令:

convert captcha.png -resize 200% -type Grayscale input.tif  #instead of input.tif i want same file name so, i can recognise easily 

tesseract -l eng input.tif output  #output name as same as file name

【问题讨论】:

  • 使用 pytesseract & glob
  • 我试过了,但是图像到文本的结果非常糟糕,这对我来说非常完美。有什么办法吗?
  • 使用subprocess.call对各种文件调用shell命令,并使用glob查找文件名。
  • 还是不知道怎么做。但仍然感谢您的帮助。
  • 你的操作系统是什么?视窗?操作系统? Linux?

标签: python imagemagick ocr tesseract


【解决方案1】:

更简单的方法,没有 Python,只使用两个终端命令,一个将所有文件转换为 TIFF,一个对每个 TIFF 文件调用 tesseract:

  1. 将所有图像转换为 TIFF

    convert '*.png' -resize 200% -type Grayscale +adjoin -set filename:name "%t" '%[filename:name].tif'
    
  2. 在结果上调用 tesseract:

    for f in *.tif;do tesseract -l eng "$f" "$(basename "$f" .tif).txt";done
    

    (如果您的文件名中没有空格,您可以跳过双引号 (")。

如果输出名称看起来很奇怪,则替换步骤 1):

for f in *.png;do convert "$f" -resize 200% -type Grayscale "$(basename "$f" .png).tif";done

【讨论】:

  • 文件名看起来像这样['603351234'].tif@xenoid
  • @wizard 不适合我。为答案中的convert 步骤添加了替代单行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多