使用python在整个目录上执行Tesseract OCR

时间:2017-06-23 05:45:06

标签: python imagemagick ocr tesseract

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

  

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

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

1 个答案:

答案 0 :(得分:0)

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

  1. 将所有图片转换为TIFF

    // to delete the temp table
    $query = "IF OBJECT_ID('tempdb..##temp') IS NOT NULL DROP TABLE ##temp";
    $result = mssql_query($query);
    
    // to initialize the temp table
    $query = "
    SELECT *
    INTO ##temp
    FROM (SELECT ROW_NUMBER() OVER (PARTITION BY test_key
          ORDER BY test_moment desc) AS Seq, *
    FROM  reports_table) t
    WHERE Seq = 1
    and test_moment between '$_GET[od] $time' and '$_GET[do] $time1'";
    $result = mssql_query($query);
    
    // to query the temp table
    select test_key
    from ##temp
    where x = 0
    and y = 1
    and z = 3
    
  2. 在结果上调用tesseract:

    convert '*.png' -resize 200% -type Grayscale +adjoin -set filename:name "%t" '%[filename:name].tif'
    

    (如果文件名中没有空格,则可以跳过双引号(for f in *.tif;do tesseract -l eng "$f" "$(basename "$f" .tif).txt";done )。

  3. 步骤1的替换)如果输出名称看起来很奇怪:

    "