用pytesseract查找表区域

时间:2018-08-22 08:26:08

标签: python image-processing python-tesseract

我目前正在使用Windows 7,Python 3.6和 pytesseract 处理扫描的图像。这些图像包含文本和表格区域-看起来像这样:https://tex.stackexchange.com/questions/49300/wrap-text-around-a-tabular

我想获取表格区域的坐标,以便将图像裁剪到该部分。显然,tesseract定义了具有不同属性的区域( PolyBlockTypes 参见https://tesseract.patagames.com/help/html/T_Patagames_Ocr_Enums_PolyBlockType.htm)-但我不知道如何使用 pytesseract 获取该信息

有人可以帮助我吗?我想通过使用 pytesseract 或其他python函数来解决此问题。

编辑:我当前的方法是

pytesseract.image_to_data(image='< ... >', config='-c gapmap_debug=1')

配置gapmap_debug = 1似乎没有任何作用……至少我没有得到输出。我想念什么吗?可以在http://www.sk-spell.sk.cx/tesseract-ocr-parameters-in-302-version

中找到更多配置选项

1 个答案:

答案 0 :(得分:0)

尝试下面的代码,识别电话号码(可信度> 70),例如phone number img 从img数据保存到一个特殊文件夹

data = pytesseract.image_to_data(image, lang='eng', config='outputbase digits', output_type = pytesseract.Output.DICT)
    text = data['text']
    confidence = data['conf'][len(text)-1]
    phone_number = data['text'][len(text)-1]
    print(image.filename, "  confidence" , confidence , "  phone_number" , phone_number)
    if confidence>=70 and len(phone_number.strip())> 10:
        changeFileName = image.filename
        newName = image.filename[0:len(image.filename)-5] + phone_number +".jpg";
        newFileName = os.path.basename(newName) 
        image.save('./recognize/'+newFileName, 'JPEG')
        os.remove(image.filename) 
        print( "old" + changeFileName +"\nnew"+ newName)