2017-06-14 5 views
0

Tesseract OCRと楔形文字OCRを使用して画像からテキストを取得しようとしています。特定の値以下の色のRGB値が明るい色であることを知る方法はありますか

ただし、テキストが小さいフォントまたはフォントが薄い場合は、結果のテキストにエラーがあります。

テキストを取得するために必要な画像のほとんどは、テキストを濃い色で返し、残りの画像は明るい色にします。だから私はすべての明るい色を白色に変換し、バッファリングされた画像のサイズを大きくして結果のテキストが正しいと考えています。 (私のアプローチが間違っていれば私を訂正してください)。

誰でもテキストがOCRエンジンの薄い/小さすぎる場合には、多くのあなたがそれについてできることはありません、これは本当に便利

答えて

1

になります達成するためにどのように任意の情報を提供することができます。

OCRエンジンの問題を引き起こすのはコントラストの問題で、「暗い」を暗く、「明るい」を軽くする方が良い方法です。

以下

Iが前に使用したコントラスト式であり、うまく動作:

X> 1.0、よりコントラストとX < 1.0以下、コントラストと yは任意の色成分の最大値である手段
float contrast = 0.2; 
float factor = (x*(contrast + y))/(x - contrast); 

(通常は1.0または255)

編集:色が別の色よりも明るい場合伝えるために:

  1. がグレースケールに色を変換します次のいずれかの方法で:

明度方法平均最も顕著と少なくとも目立つ色: (MAX(R、G、B)+分(R、G、B))/ 2。

平均法単純平均値(R + G + B)/ 3

光度法は平均 方法のより洗練されたバージョンです。それはまた、値を平均化するが、それは人間の知覚を説明するために加重平均 を形成する。我々は他の色の より緑色に敏感ですので、緑は最も重く重くなります。 光度ための式は0.21 R + 0.72 G + 0.07 B.

  • 軽量であるかを確認するために、得られた値を比較します。
  • +0

    私は決して完全にあなたの質問に答えなかったことを認識しました。解決策を反映するために私の答えを編集しました。 –

    +0

    私はあなたの答えを試みます。私は別のアイデアを得た。 R <125 G <125 B <125の場合、より明るい色となり、rgbの値のいずれかが125より大きい場合は、より暗い色と見なすことができます。 –

    +0

    グレースケールに変換すると、個々のコンポーネントを確認するよりも安定した結果が得られます。あなたのメソッドが暗い色を定義する特定のケースがありますが、それを見ると明るくなり、その逆もあります。ルミナンスは人間の知覚に最も適しており、第2平均法(R + G + B)/ 3はおそらくOCRに最適です。 –

    関連する問題