0

android-ocr(tesseract-ocr)のサンプルコードを使って画像カードから数字を抽出するアプリを作っています。カードのフォントに従ってデータをトレーニングしました。特殊な背景を持つカードの場合は少数のカードを検出していますが、複数の背景を持つカード (付属のサンプル) の場合は数が認識されません。カード番号が背景に少し重なっていても、認識されません。

背景を削除するために、以下の手順を使用しようとしました。

  1. 以下を使用してトリミングされた画像を滑らかにします。

    GaussianBlur(クロップ、クロップ、サイズ(3,3)、0、0、BORDER_DEFAULT); cvtColor(クロップ、クロップ、CV_RGB2GRAY);

  2. エッジ検出は sobel を使用しました:

    作物 = SobelEdgeDetect(作物);

  3. cv ではなくビットごとに変換する:

    bitwise_not(crop,crop);

  4. 影のようなものを削除するためにadaptiveThresholdを使用しました:

    適応しきい値 (作物、作物、255、CV_ADAPTIVE_THRESH_MEAN_C、CV_THRESH_BINARY、75,10);

これらの手順を使用した後、画像 (添付の bar-Process`png、citi1-Process.png、citi-Process.png) を取得しています。この画像は、数字の中に空白が入った太字になっています。この場合、ocr アプリケーションは番号を認識しません。これらの数字を太字で埋める方法がわかりません。

カードのテキスト部分を乱すことなく、画像カードから背景を削除するという大きな課題があります。ですから、画像の背景を削除する方法に固有の上記の問題をすべて解決する方法を教えてください`参照用にいくつかのサンプルと出力データを添付しました。

よろしくお願いしますアニル

4

0 に答える 0