【发布时间】:2013-02-19 11:28:44
【问题描述】:
我想将 .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 使用以下代码 sn-p 识别视频帧(我拆分的 jpg 图像文件)中的字符,它正在识别字符,但不能 100% 准确识别。它还添加了一些图像中没有的垃圾字符。
我正在使用的Java代码sn-p:
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代码sn-p的机构或这方面的任何建议请帮助。
【问题讨论】:
-
如果您必须使用 jpg 输出,请考虑添加
-qscale:v 2作为输出选项以提高输出文件质量。默认设置可能不够。 -
感谢您的建议。我一定会这样做的。
-
能否给我一个确切的命令语法示例。