Techioz Blog

RTesseract により Windows 10 で「そのようなファイルまたはディレクトリはありません」エラーが発生する

概要

RTesseract と mini_magick を使用して、白い背景色とピンクのフォント色のいくつかの画像に対して Ruby プログラムで簡単な OCR を実行しようとしています。残念ながら、RTesseract では引き続き問題が発生します。オンラインで見つけて Program Files (x86) フォルダーに保存されている .dll 実行可能ファイルを介して Tesseract-OCR v3.05 をインストールしました。また、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>'

さまざまなことを試しましたが、この混乱した宝石を機能させるものは何もないようです。今頃は別の言語やラッパーを使用していたと思いますが、この gem は私のプロジェクトの中心であり、どうしても解決策が必要です。

環境変数 PATH を C:Files (x86)-OCR に設定すると、tesseract が認識されるコマンドとなり、convert -version が Invalid Drive Spec という出力を与えるようになりました。現在のエラーは、ImageMagick が呼び出しによって認識または検出されないことであるようです。

解決策

MiniMagick は使用していませんが、同じエラー メッセージが表示されました。私は Windows システムで開発を実行していますが、これが最初の問題だったかもしれません。 「GEM Install RTasseract」でRTesseractをインストールしましたが、必要なTesseract-OCRがインストールされていませんでした。これは、https://github.com/UB-Mannheim/tesseract/wiki の手順に従って解決しました。

その後、コマンドラインからtesseractを起動できましたが、Rubyからはまだ起動できませんでした。ただし、begin-rescue-end フレームを削除した後、どのファイルがエラーの原因となったのかという情報が得られました。私の場合 (パスはインストールされている RTesseract のバージョンによって異なる場合があります): C:-x64\3.2.0.3

最後になりましたが、最後のヒント: スキャンした画像が英語のテキストを表していない場合は、言語も変更する必要があります。例えば。私のテストファイルはドイツ語で、「ü」は「ii」に、「ä」は「6」に変換されました。