.flv ビデオ ファイルを高解像度の .jpg/png フレームに分割し、Tess4J ツール (Tesseract の JNA ラッパー) を使用してその中の文字シーケンスを認識したいと考えています。
現在、ffmpeg コマンド ライン ツールを使用して、.flv ビデオ ファイルを jpg 画像に分割しようとしました。使用した ffmpeg コマンドは次のとおりです。
ffmpeg -i myinput.flv myoutput%d.jpg
それは私に詳細を持つ出力画像を与えています:
画像サイズ : 1280 * 696
水平解像度: 96 dpi
垂直解像度: 96 dpi
ビット深度: 24
私の問題は次のとおりです。Tess4Jを使用して次のコードスニペットを使用してビデオフレーム(分割したjpg画像ファイル)の文字を認識しようとしましたが、文字を認識していますが、100%の精度で識別していません。画像にはないジャンク文字も追加されています。
私が使用しているJavaコードスニペット:
import java.io.BufferedWriter
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
public class TesseractDemo {
public static void main(String[] args) {
File imageFile = new File("D:\\myinput1.jpg");
Tesseract instance = Tesseract.getInstance();
// Tesseract1 instance = new Tesseract1();
try {
String result = instance.doOCR(imageFile);
System.out.println(result);
// write in a file
try {
File file = new File("D:\\myoutput1.txt");
BufferedWriter out = new BufferedWriter(new FileWriter(file));
out.write(result);
out.close();
} catch (IOException ex) {
}
} catch (TesseractException ep) {
System.err.println(ep.getMessage());
}
}
}
注: Tess4J サイトでは、OCR を実行するために使用する画像は 200 dpi (ドット/インチ) を超える必要があると述べています。ffmpeg を使用して 200 dpi を超える jpg 画像を取得するには??
この点に関して、Javaコードスニペットまたは提案を持っている団体は助けてください。