多くの形式の画像をOCRするJavaプログラムを作成しようとしています。イメージのバイトはネットワーク経由で送信されるため、イメージをファイルから直接読み取ることはできません。
現在、ImageIO を使用して画像ピクセルの raw バイトを読み取ることができます。ただし、ImageMagick でサポートされているすべての形式をサポートしたいので、JMagick を使用して画像を読み取り、生のバイトを Tess4J に渡します。これにどのようにアプローチすればよいかわかりません。私はこの関数が私にバイトを与えることができることを発見しました:
PixelPacket[] MagickImage.getColormap();
ただし、取得した PixelPacket オブジェクトを連続したバイトに変換するための特別なメソッドを作成する必要があります。私はそれを行うことができますが、おそらくこれを行うより良い方法はありますか?たとえば、次の方法で使用できる非常に生のファイル形式 ( http://en.wikipedia.org/wiki/BMP_file_format#mediaviewer/File:BMPfileFormat.pngよりもさらに多い) があるかもしれません。
byte[] imageToBlob(ImageInfo imageInfo) ?
オブジェクトはこの生の形式を指す必要があり、配列imageInfo
からピクセル情報を切り取ることができます。bytes
これは適切な方法ですか、それとももっと単純な (より高速で堅牢な) ものを使用する必要がありますか?
編集
私が念頭に置いていた形式はPNMと呼ばれていることがわかりました。