2013-02-19 18 views
1

我想將.flv視頻文件分割爲分辨率良好的.jpg/png幀&,然後想要使用Tess4J工具(JNA包裹在Tesseract周圍)。無法使用Tess4J以100%的準確率識別jpg文件中的文本

目前我試過ffmpeg的命令行工具來分割。FLV視頻文件爲JPG images.The 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代碼片段或任何建議,在這方面的機構請幫助。

+0

如果您必須使用jpg輸出,請考慮添加'-qscale:v 2'作爲輸出選項以增加輸出文件質量。默認設置可能不夠用。 – LordNeckbeard 2013-02-19 19:00:00

+0

感謝您的建議。我當然會這樣做。 – 2013-02-20 06:07:44

+0

你能否給我一個確切的命令語法的例子。 – 2013-02-20 06:26:48

回答

1

如果可能,使用PNG圖像格式,因爲JPEG可能會有壓縮並引入僞像。您可以使用Java將您的圖像重新縮放到理想的分辨率(在Tess4J中檢查ImageHelper.getScaledInstance方法)。你應該得到比原始轉換圖像更好的結果。在白色背景上獲得黑色文字的顏色反轉也會有所幫助。

相關問題