2016-03-20 17 views
0

画像があり、tesseractを使用しています。そこからテキストを探しています。 私は四角形(左、上、右、下)の形でテキストのバウンディングボックスを持っていますOCRの後にアンドロイドで画像からフォントの色を検出

2D境界ボックスマトリックスを横断しようとしたテキストのフォント色を探したいと思います背景色をバウンディングボックス内の各カラーピクセルと比較する。私が背景色以外の色を取得しているところでは、フォント色になる色を戻しています。

//rectArrayList is an array list of rect for a line in the image 

for(int i=rectArrayList.get(0).left;i<rectArrayList.get(0).right ;i++){ 
     for(int j=rectArrayList.get(0).top;j<rectArrayList.get(0).bottom;j++){ 

      pixel=colorbit.getPixel(i,j); 
      R = (pixel & 0xff0000) >> 16; //channel the pixel in RGB values 
      G = (pixel & 0xff00) >> 8; 
      B = pixel & 0xff; 

//backColour is the background colour of the image 
      if(backColour!=Color.rgb(R,G,B)){ 
       return Color.rgb(R,G,B); 
      } 

     } 

背景色が黄色であるとします。しかし、マトリックスを横断している間、私は、フォントの色ではなく背景色である黄色の異なる色合いを得る。だから私は間違ったフォントの色を取得します。私は、この技術は、画像の背景色として失敗します知っている

は明るさに応じて、などを同じ色の色合いを変化させているだろう

私は、画像から正確なフォントの色を取得するために何をすべき?

答えて

1

私はあなたにその問題の多くの異なる解決策を与えることができます。

色1の色が異なる場合は停止しないでください。2.許容範囲を追加してください。 両方のRGBタプル間のユークリッド距離を計算します。次に、距離がある閾値より大きいかどうかを確認します。 RGBをHueに変換し、両方のHue値の絶対差を計算することもできます。

もちろん、より複雑で優れた解決策がありますが、画像処理についての知識があれば、今はあなたを助けません。

+0

ご返信ありがとうございます。あなたが提案したものを実装しようとします。しかし、いったん私はそれらを実装し終えると、あなたのより良い、そして複雑な解決策を望んでいます。乾杯! –

関連する問題