Android OCR: AndrOCR 源代码错误
Android OCR: AndrOCR source code error
我是一名学生,正在从事学校项目,创建名片扫描仪以从图像中提取文本,并按名称、phone 号码等相应地显示到相应的文本框中。
过去几周我一直在谷歌搜索,在网上找到了很多很好的例子。目前,我正在尝试从我在网上找到的名为 "AndrOCR" 的应用程序中实施源代码。但是,我在代码中遇到了一些错误,我不知道如何在 Ecilpse(juno) 中解决。
我已经从 rmtheis 中实现了 tess-two,并且能够 运行 其他一些 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 cannot be resolved or is not a field",这也适用于其余错误。
此link中提供了源代码:https://github.com/TheWall89/AndrOCR
请检查一下,让我知道错误是什么以及如何解决它们,因为我在 android 开发方面仍然是初学者,需要很多帮助,非常感谢~
constants 已移至名为 PageSegMode
的内部 class。
所以将您的代码更改为
mSegMode = TessBaseAPI.PageSegMode.PSM_AUTO;
和
mSegMode = TessBaseAPI.PageSegMode.PSM_SINGLE_BLOCK;
等等
我是一名学生,正在从事学校项目,创建名片扫描仪以从图像中提取文本,并按名称、phone 号码等相应地显示到相应的文本框中。
过去几周我一直在谷歌搜索,在网上找到了很多很好的例子。目前,我正在尝试从我在网上找到的名为 "AndrOCR" 的应用程序中实施源代码。但是,我在代码中遇到了一些错误,我不知道如何在 Ecilpse(juno) 中解决。
我已经从 rmtheis 中实现了 tess-two,并且能够 运行 其他一些 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 cannot be resolved or is not a field",这也适用于其余错误。
此link中提供了源代码:https://github.com/TheWall89/AndrOCR
请检查一下,让我知道错误是什么以及如何解决它们,因为我在 android 开发方面仍然是初学者,需要很多帮助,非常感谢~
constants 已移至名为 PageSegMode
的内部 class。
所以将您的代码更改为
mSegMode = TessBaseAPI.PageSegMode.PSM_AUTO;
和
mSegMode = TessBaseAPI.PageSegMode.PSM_SINGLE_BLOCK;
等等