черный список и белый список в tesseract ANDROID

Я разрабатываю приложение для Android, которое пополняет телефон с помощью кредита, фотографируя карту с помощью камеры телефона или из галереи. Для этой цели я использовал библиотеку tesseract, чтобы брать только цифры, используя черный список и белый список. Это не работает должным образом

изображение, которое я использовал, содержит только эти две строки:

Пин-код

41722757649786

результат перед началом перезарядки был:

718 200

41722757649786

Я хочу распознавать только цифры без букв и без использования обрезки.

  public void initTess(){   

    if (mBaseApi != null)
        mBaseApi.end();     

    mBaseApi = new TessBaseAPI();
    mBaseApi.setDebug(false);

    mBaseApi.setPageSegMode(TessBaseAPI.PageSegMode.PSM_OSD_ONLY);
    mBaseApi.init(mDataDir + File.separator,"eng");
    mBaseApi.setVariable(TessBaseAPI.VAR_CHAR_WHITELIST,"0123456789");
    mBaseApi.setVariable(TessBaseAPI.VAR_CHAR_BLACKLIST,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmopqrstuvwxyz");


}

person taiba    schedule 06.11.2014    source источник
comment
спасибо за быстрый ответ.. да проблема в том, что текстовый пин-код распознается как 718 200.. я хочу, чтобы буквы вообще не показывались.. это возможно?   -  person taiba    schedule 06.11.2014


Ответы (1)


Установка переменной "tessedit_char_whitelist" должна выполняться ПЕРЕД инициализацией, как указано в FAQ: https://code.google.com/p/tesseract-ocr/wiki/FAQ#How_do_I_recognize_only_digits? Скорее всего, это относится и к черному списку.

Поэтому, изменив свой код с этого:

mBaseApi.setPageSegMode(TessBaseAPI.PageSegMode.PSM_OSD_ONLY);
mBaseApi.init(mDataDir + File.separator,"eng");
mBaseApi.setVariable(TessBaseAPI.VAR_CHAR_WHITELIST,"0123456789");
mBaseApi.setVariable(TessBaseAPI.VAR_CHAR_BLACKLIST,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmopqrstuvwxyz");

к этому :

mBaseApi.setPageSegMode(TessBaseAPI.PageSegMode.PSM_OSD_ONLY);
mBaseApi.setVariable(TessBaseAPI.VAR_CHAR_WHITELIST,"0123456789");
mBaseApi.setVariable(TessBaseAPI.VAR_CHAR_BLACKLIST,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmopqrstuvwxyz");
mBaseApi.init(mDataDir + File.separator,"eng");

должен сделать трюк.

person Kaz    schedule 11.08.2015