2015-12-15 3 views
4

Я участвую в школьном проекте, чтобы создать сканер визитной карточки, чтобы извлечь текст из изображения и отобразить его соответственно по имени, номеру телефона и т. Д. В соответствующие текстовые поля.Android OCR: ошибка исходного кода AndrOCR

Я искал поисковые запросы в течение последних нескольких недель и нашел множество отличных примеров в Интернете. В настоящее время я пытаюсь внедрить исходный код из этого приложения, которое я нашел в Интернете под названием «AndrOCR». Тем не менее, я столкнулся с некоторой ошибкой в ​​кодах, в которых я не знаю, как решить в Ecilpse (juno).

Я уже реализовал tess-two от rmtheis и смог запустить некоторые другие исходные коды OCR. Однако для «AndrOCR» я не могу решить.

Коды с ошибкой приведены ниже:

public void onDialogSingleChoice(int dialog_id, int item){ 
    switch(dialog_id){ 

     case SEGMODE_DIALOG: 
      mSegModeID = item; 
      // Change the OCR page segmentation mode 
      switch (mSegModeID){ 
      case 0: 
       mSegMode = TessBaseAPI.**PSM_AUTO**;       
       break; 
      case 1:   
       mSegMode = TessBaseAPI.**PSM_SINGLE_BLOCK**;       
       break; 
      case 2: 
       mSegMode = TessBaseAPI.**PSM_SINGLE_LINE**;      
       break; 
      case 3: 
       mSegMode = TessBaseAPI.**PSM_SINGLE_WORD**;      
       break; 
      case 4: 
       mSegMode = TessBaseAPI.**PSM_SINGLE_CHAR**;      
       break; 
      case 5: 
       mSegMode = TessBaseAPI.**PSM_SINGLE_BLOCK_VERT_TEXT**;      
       break;     
      }     
      // It's not needed to restart the whole library here 
      removeDialogFragment("segmode_dialog"); 
      Toast.makeText(mThis, getString(R.string.selected_text_layout) + " " + mSegModeArray[mSegModeID], Toast.LENGTH_SHORT).show(); 
      break; 

     case LANGUAGE_DIALOG: 
      mLangID = item; 
      // Change the OCR language recognition 
      mLang = mTessLangArray[mLangID]; 
      removeDialogFragment("language_dialog"); 
      setTessData();    
      break; 
    } 
} 

Ошибка возникает в жирным шрифтом текста, как показано выше. Сообщение об ошибке «PSM_AUTO не может быть разрешено или не является полем» для первой ошибки, которая также относится к остальным.

Исходный код доступен в этой ссылке: https://github.com/TheWall89/AndrOCR

Пожалуйста, проверьте его и дай мне знать, что ошибка и как я могу решить их, так как я еще новичок в андроиде развития и требую много спасибо, большое спасибо ~

ответ

1

Эти constants были перемещены во внутренний класс под названием PageSegMode.

Так изменить код

mSegMode = TessBaseAPI.PageSegMode.PSM_AUTO; 

и

mSegMode = TessBaseAPI.PageSegMode.PSM_SINGLE_BLOCK; 

т.д.

+0

Привет @rmtheis, это работает. Большое спасибо, очень ценю это :) –

Смежные вопросы