2017-06-23 135 views
1

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

这里是终端命令将其转换成文本:

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 
+0

使用pytesseract glob的与我 – n1c9

+0

试过,但图像的文本结果是相当可怕的这个作品非常适合我。有什么办法吗? – wizard

+0

使用'subprocess.call'在各种文件上调用shell命令,并使用glob查找文件名。 – n1c9

回答

0

更简单的方法,没有Python的,只是使用两个终端的命令,一个是将所有的文件,TIFF,和一个每个TIFF文件调用的Tesseract:

  1. 转换所有的图像以TIFF

    对结果
  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 
+0

文件名将如下所示:[''603351234']。tif' @xenoid – wizard

+0

@wizard不适合我。在答案中为转换步骤添加了另一种单行程式。 – xenoid