ruby RTesseract在Windows 10下导致“没有这样的文件或目录”错误

bmvo0sr5  于 12个月前  发布在  Ruby
关注(0)|答案(1)|浏览(136)

我正在尝试使用RTesseract和mini_magick在Ruby程序中为一些具有白色背景色和粉红色字体颜色的图像做一些简单的OCR。不幸的是,我一直与RTesseract的问题。我已经通过.dll可执行文件安装了Tesseract-OCR v3.05,该文件存储在我的Program Files (x86)文件夹中。我也有ImageMagick v6.9.9通过自己的可执行文件安装在Program Files文件夹(不是x86)。下面是我的代码:

require "mini_magick"
require "rtesseract"

RTesseract.configure do |config|
  config.processor = "mini_magick"
end

image = MiniMagick::Image.open("input.png")
image = RTesseract.new('input.png').to_s
puts image

正如你所看到的,这是一段非常简单的代码。当我将RTesseract代码注解掉时,它的执行没有问题,但是当我调用RTesseract的功能时,像下面这样的事情开始出现:

C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/rtesseract-2.1.0/lib/rtesseract.rb:182:in `convert': No such file or directory - tesseract "C:/Users/NORMAL~1/AppData/Local/Temp/20170801-8600-1evxygh.tif" "C:/Users/NORMAL~1/AppData/Local/Temp/1501649603.1925441244"  -l eng         (RTesseract::ConversionError)
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/rtesseract-2.1.0/lib/rtesseract.rb:194:in `to_s'
        from testingTesseract.rb:12:in `<main>'

我已经尝试了很多不同的东西,但似乎没有什么让这个混乱的宝石工作。到现在为止,我已经使用了不同的语言或 Package 器,但是这个gem是我项目的核心,我迫切需要一个解决方案。
当我将环境变量PATH设置为C:\Program Files (x86)\Tesseract-OCR时,tesseract成为一个可识别的命令,convert -version开始给予输出Invalid Drive Specification。现在的错误似乎是调用无法识别/找到ImageMagick。

0wi1tuuw

0wi1tuuw1#

我得到了同样的错误消息,虽然我不使用MiniMagick。我在Windows系统上运行开发,这可能是第一个问题。虽然我已经安装了RTesseract与“创业板安装RTasseract”必要的Tesseract-OCR没有安装。这一点我用https://github.com/UB-Mannheim/tesseract/wiki中的指令解决了。
之后,我可以从命令行启动tesseract,但仍然不能从Ruby启动。然而,在删除了call-rescue-end帧后,我得到了哪个文件导致错误的信息。在我的例子中(路径可能取决于安装的RTesseract版本):C:\Ruby32-x64\lib\ruby\gems\3.2.0\gems\rtesseract-3.1.3\lib\rtesseract\configuration. rb.将第19行改为命令后:'C:/Programme/Tesseract-OCR/tesseract.exe',问题解决了。由于“C:/Programme”是一个典型的德语Windows路径,您当然应该验证确切的路径,在那里您可以找到文件Tesseract.exe。
最后但并非最不重要的一个提示:如果扫描的图像不是英文文本,您还应该更改语言。例如,我的测试文件是德语,“ü”被翻译成“ii”,“ä”被翻译成“6”。

相关问题