2016-10-25 4 views
0

Tesseract Java APIを使用しているので、私はOCRを使ってパスポートの詳細を認識しています。より良い精度を達成するためには、イメージ全体(.png、.jpeg、.tiff)をテキスト領域にのみ分割する必要があります。画像からテキスト領域を分離するオープンソースのJavaライブラリがありますか?私にそれに関する提案をお願いします。どのように私はJavaで画像からテキスト領域を分離するのですか

答えて

0

あなたの最善の策はOpenCVを使うことです(Javaにはバインディングがあります)。

問題は難しく、すべての場合に機能する解決法はありません。私はthis oneのようなスレッドからの提案をチェックし、あなたの特定のケースに最適なソリューションを見つけようとします。

0

Marvinは、この目的のための方法を提供します。

public static java.util.List<MarvinSegment> findTextRegions(MarvinImage imageIn, 
             int maxWhiteSpace, 
             int maxFontLineWidth, 
             int minTextWidth, 
             int grayScaleThreshold) 

入力画像:

enter image description here

出力画像:

enter image description here

ソースコード:

import static marvin.MarvinPluginCollection.*; 

public class TextRegions{ 

     public static void main(String[] args) { 

     MarvinImage image = MarvinImageIO.loadImage("./res/passport.png"); 
     MarvinImage originalImage = image.clone(); 
     List<MarvinSegment> segments = findTextRegions(image, 15, 8, 30, 150); 

     for(MarvinSegment s:segments){ 
      if(s.height >= 5){ 
       originalImage.drawRect(s.x1, s.y1, s.x2-s.x1, s.y2-s.y1, Color.red); 
      } 
     } 

     MarvinImageIO.saveImage(originalImage, "./res/passport_2.png"); 
    } 
} 
関連する問題