我想将 .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获取200dpi以上的jpg图片??
任何有任何java代码片段或在这方面有任何建议的机构请帮忙。