如何检查 Tesseract 是否已完成文件处理?

How to check if Tesseract has finished processing a file?

我正在 vb.net 中编写一个软件,我试图在其中尝试对数十个 *.jpg 文件进行 OCR。

基本思路是手动 select 一个文件夹,我有一堆 jpg 文件和第二个文件夹,其中存储了 Tesseract 输出的 txt 文件。

如您所知,Tesseract 需要几秒钟的时间(在我的情况下需要多一点,因为我的电脑速度不快)来处理 jpg 文件并对它进行 OCR。

问题是我想对每个 jpg 一张一张进行 OCR,所以我需要知道 Tesseract 何时完成对每个文件的处理。当我用参数执行 CMD 命令时,Tesseract 创建了一个空的 txt 文件。但是我不知道如何检查 Tesseract 何时完成文件处理以及 VB 软件可以启动指令来处理以下 jpg。

我想过检查txt文件的字节长度,如果它不为零,就意味着该文件已经被Tesseract处理过。

目前我有一个 Do...Loop,我在其中处理每个 jpg 文件,并且我有一个嵌套的 Do...Loop 检查 txt 文件大小是否 > 0 字节。如果不大于零字节,则执行 thread.sleep(5000).

Do Until myFileSize > 0
    Thread.Sleep(5000)
Loop

尝试在 txt 文件大小 = 0 字节时一次又一次地休眠代码。

这是我知道的唯一解决方案,但它似乎没有执行我正在寻找的操作。

您会使用哪种技术来解决这个问题?

Tesseract 具有批处理模式,您可以在其中提供必须处理的文件列表,它会处理每个文件。 看看here.