如何使用tesseract 4.0或pytesseract检测图像中的表格?

时间:2018-08-01 05:40:42

标签: python tesseract

我想检测图像中的表格。确定表的块以及其中的文本。 在以前的tesseract版本中,可以使用参数textord_dump_table_image。如何在tesseract 4.0中提取表?

1 个答案:

答案 0 :(得分:1)

非常奇怪的是,目前没有可用于直接获取tesseract中的表区域的API。但是,您可以使用小技巧“咳嗽”来获取表格坐标。

tesseract有一个配置选项 textord_show_tables 。使用配置文件或其他将其设置为 true 。 Tesseract具有内置功能来显示其内部状态,因此您可以查看其分段和识别。

为Tesseract构建并安装Viewer调试器。请参阅ViewerDebugging

在上面的链接中也描述了其用法说明。这是一个运行在端口8461上的简单ServerSocket,当tesseract处理映像时,它将打开多个窗口。您可以在名为“检测到的表”的窗口中查看检测到的表。

但是,大多数人实际上会对获取表的坐标列表感兴趣。为此,您可以编写自己的服务器套接字,监听端口8461,并诱骗tesseract将消息发送到本地运行的服务器。 发送到服务器的消息处于lua状态。这些是设置和绘制GUI的说明。您可以编写一个简单的解析器来解释这些指令并提取出坐标。 大多数说明没有任何用处。当tesseract发送指令创建一个名为“检测到的表”或类似名称的窗口时,请注意。所有以黄色(255,255,0)绘制的矩形都是表格。因此,这些是您真正关心的指示。 我建议将所有说明转储到文件/控制台中,然后自己查看。

PS:您可能想在配置设置中添加 interactive_display_mode 1 。这样可以防止tesseract在所有指令发送之前关闭。

我承认这不是一个很好的解决方案,但是仍然可以工作。