イメージからデータを読み取るための簡単なスクリプトを作成し始めました。Tesseractは特定の数字を読み取っていません
require 'rtesseract'
require 'mini_magick'
RTesseract.configure do |config|
config.processor = "mini_magick"
end
image = RTesseract.new("myImage.jpg")
puts image.to_s
が、私はこのイメージで始まった:132B 4
:戻ってきた
結果ここでそれを読むためにRTesseractを使用して、私のRubyのコードがあります。
私は0がB(私はそれを解決することができる)として戻ったことを理解します。でも、3
、0
、8
は一切返ってこなかった。今私はそれが最初の数でそれをしたので、すでに3と0を読む方法を知っていることを知っています。私はそれに次の数字をレンダリングするいくつかの問題があったと思うので、私はそれを白黒にしました。 132B 4
:結果はまだ戻ってきたとしてしかし
:
これは、私が試した第2の画像があります。
最後に画像を切り取り、最後の3つの数字を試しました。
しかし、私は、スクリプトを実行したとき、それは結果が返されない:ここで
はイメージです。なぜ私は最終的な数字を読むことができないのですか?
私はRuby 2.2.2、rTesseract 2.1.0およびMiniMagick 4.5.1を使用しています。私は
イメージを白い黒色のテキストに変え、イメージ圧縮アーティファクトを削除します。これは、@ eric-duminilの提案です。 一貫性のある既知のフォントでは、私自身が文字ごとに素朴なピクセル - 差分マッチングを行うだけの精度が向上しました。 – Kache
@Kache:面白いと思うよ。リンクはありますか? –
@EricDuminilああ、私はリンクがありません。それは非常に素朴な方法でした:1.標準化されたブラック・オン・ホワイト文字にテキストを修正し、カットします。2.フォントに現れる可能性のあるすべての文字イメージとバリエーションをdatamineします。いくつかのトリックを使用して、すべての文字のすべてのピクセルをカウントする必要はありません(たとえば、文字ピクセルの高さ/幅、黒/白ピクセル数など) – Kache