Android OCR: Error de código fuente de AndrOCR
Soy un estudiante trabajando en un proyecto escolar para crear un escáner de tarjetas de visita para extraer el texto de la imagen y mostrarlo en consecuencia por nombre, número de teléfono, etc en los respectivos cuadros de texto.
He estado googling durante las últimas semanas y he encontrado muchos ejemplos en línea. Actualmente estoy tratando de implementar el código fuente de esta aplicación que he encontrado en línea llamado "AndrOCR". Sin embargo, he encontrado algún error en los códigos en los que no sé cómo resolver en Ecilpse (juno).
- Android Tesseract OCR 7 dígitos de segmento
- Aplicación de OCR para Android que utiliza Tesseract
- Aplicación de OCR para Android que utiliza Tesseract
- Android: cómo reconocer códigos MICR
- Tesseract v3.03 hacer PDF con texto de búsqueda de ejemplo
Ya he implementado tess-two de rmtheis y capaz de ejecutar algunos otros códigos fuente OCR. Sin embargo, para "AndrOCR" soy incapaz de resolver.
A continuación se muestran los códigos con el error:
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; } }
El error se produce en el texto en negrita como se muestra arriba. El mensaje de error es "PSM_AUTO no se puede resolver o no es un campo" para el primer error, que también se aplican al resto.
El código fuente está disponible en este enlace: https://github.com/TheWall89/AndrOCR
Por favor, echa un vistazo y déjame saber cuál es el error y cómo puedo resolverlos, ya que todavía soy un principiante en el desarrollo android y requieren mucha ayuda, muchas gracias ~
- Creación de una actividad de cámara optimizada / adecuada para OCR
- Cómo reducir el tamaño de la aplicación Android?
- reconocimiento de escritura a mano para el árabe aislado
- Adición de Tesseract y Opencv a Android.mk (Android Studio)
- Sugerencias para el reconocimiento de dígitos
- Detección de objetos para android con tesseract o OpenCV
- Tesseract OCR Android tessdata directorio no encontrado
- Aplicación OCR para Android: diccionario Tesseract
Esas constantes se movieron a una clase interna llamada PageSegMode
.
Así que cambia tu código a
mSegMode = TessBaseAPI.PageSegMode.PSM_AUTO;
y
mSegMode = TessBaseAPI.PageSegMode.PSM_SINGLE_BLOCK;
Etc.