如何通过循环将多个文件传输到tesseract-ocr

时间:2019-04-09 19:27:37

标签: bash pipe tesseract

我正在寻找一种方法(通过tesseract-3)将文件(PNG输入文件)顺序添加到OCR的PDF中。 想法是扫描PNG,对其进行优化(optipng),然后通过流将其馈送到tesseract,然后将其添加到不断增长的PDF中。 两次扫描之间的时间为20-40秒,并且扫描进入数百次,这就是为什么我要使用两次扫描之间的等待时间来进行OCR的原因。

我想这可以像这样工作:

while ! $finished
do
  get_scanned_image_to_png_named_scannumber
  optipng $scannumber.png
  check_for_finishing_condition #all this works fine already
  sleep 30s
  #do some magic piping into a single tesseract instance here
done #or here?

灵感来自于此:

https://github.com/tesseract-ocr/tesseract/wiki/FAQ#how-to-ocr-streaming-images-to-pdf-using-tesseract

非常感谢您提供任何提示

Joost

编辑:

操作系统:OpenSuse Tumbleweed

扫描:一系列“图像获取”中的更多结果导致每个PNG(不是真正的扫描仪);至少要持续几个小时。

跟进: 做这种事

while ! $finished
do
  get_scanned_image_to_png_named_scannumber
  optipng $scannumber.png
  check_for_finishing_condition #all this works fine already
  sleep 30s

  echo "$capnum.png"

done | tesseract -l deu+eng -c stream_filelist=true - Result pdf

,但是当您尝试在两次扫描之间打开PDF或通过例如停止此循环时,PDF已损坏。 Ctrl-C。我没有找到获取未损坏的PDF的方法。

1 个答案:

答案 0 :(得分:0)

尝试一下:

while ! $finished
do
  get_scanned_image_to_png_named_scannumber
  optipng $scannumber.png
  check_for_finishing_condition #all this works fine already
  sleep 30s
done | tesseract -c stream_filelist=true - - pdf > output.pdf