2010-12-20 19 views
2

画像に特定の文字列があるかどうかをチェックしたいと思います。それは可能ですか? pngjはそれを行うことができますか?Javaを使用してpngファイルのテキストを取得する方法

私のファイルにはグラフといくつかの凡例が含まれます。伝説が正しいかどうかチェックしたい

+1

あなたが探しているのは、OCRソフトウェアです。 'pngj'ライブラリはOCRを行うことができることは言及していません。 –

+0

PNGJできません。テキスト認識のためのライブラリが必要です。 – khachik

+0

これは間違いなく簡単です。一般的な処理は、テキストを読み取るOCR(光学式文字認識)として知られている。しかし、それは完全ではなく、テキストではないものを拾い上げる可能性があります。また、グラフにテキスト(軸などのラベル)があれば、それも読み取られます。 – falstro

答えて

4

いいえ、あなたはpngjでそれを行うことはできません。 PNG画像に表示されるテキストは、内部的にテキストとして保存されません。テキストを識別するには、OCRソフトウェアが必要です。

ただし、コンピュータで解析しやすい別の形式でデータを取得できる場合は、muchより良いでしょう。

+0

他のフォーマットの意味は?詳しく教えてください。 – Rajasankar

+0

@Rajasankar:CSVファイルやXMLファイルのようなものは、PNGファイルより解析がはるかに簡単です。 –

1

はい、可能です。しかし、良いOCRライブラリが必要です。そして、あなたのOCRライブラリが適切な結果を返したと仮定すると、あなたの伝説が適切な位置に置かれているかどうかを何とか確認する必要があります。

1

Asprise OCRを試すことができます。これはJavaで利用可能な優れたOCR APIです。

0

ここで私は私の解決策を提供するためにスカラを使用します。あなたがJava開発者であれば、あなたのJavaコードにスカラコードを変換するのは簡単です。

ステップ1:ここファイルは次のとおりです。インポートライブラリ

import com.asprise.ocr.Ocr 

ステップ2:Scalaのcode.Pleaseノート build.sbt に1行

libraryDependencies += "com.asprise.ocr" % "java-ocr-api" % "[15,)" 

ステップ2を追加しますタイプ。 fileName/filePathのみを使用する場合は、new File()を使用して変換する必要があります。

try { 
     // Image 
     Ocr.setUp() 
     val ocr = new Ocr 
     ocr.startEngine("eng", Ocr.SPEED_FASTEST) 
     val files = List(<your_file>) 
     val outputString = ocr.recognize(files.toArray, Ocr.RECOGNIZE_TYPE_ALL, Ocr.OUTPUT_FORMAT_PLAINTEXT) 
     ocr.stopEngine() 
     Some(outputString) 
} catch { 
     case e: Exception => None // todo: to support multiple file types 
} 

は、私はまた、約how to extract text/content from another file(pdf, html, image, etc)

あなたはこのJava-OCR-APIの詳細を読みたい場合は、あなたがits official website hereを読むことができる詳細情報を提供するためにブログを書きます。

関連する問題