与OCR识别文本图像——Android Java

本教程展示了如何识别文本图像使用LEADTOOLS SDK在Android的Java应用程序。

概述
总结 本教程介绍了如何从图像中提取文本在一个Android的Java应用程序。
完成时间 20分钟
Android工作室项目 下载教程项目(1 MB)
平台 Android (Java)
IDE Android工作室
运行许可证 下载LEADTOOLS

所需的知识

熟悉基本的步骤创建一个项目的审查添加引用和设置一个许可证Android——开始使用Maven教程,在工作之前与OCR识别文本图像——Android Java教程。

创建项目并添加Maven的构件

在Android工作室里,创建一个新的Android (Java)项目,添加的工件

设置许可文件

许可解锁项目需要的特性。它必须设置工具箱函数被调用之前。详情,包括教程为不同的平台,请参考设置一个运行时许可

有两种类型的运行时许可证:

请注意

添加LEADTOOLS本地引用和设置许可中会详细介绍添加引用和设置一个许可证教程。

设置应用程序的布局

Project Explorer窗口,打开activity_main.xml文件中发现的应用程序/ src / main / res /布局目录中。以下RasterImageViewer XML代码添加一个新的运行OCR按钮。

<LinearLayout xmlns: android = " http://schemas.android.com/apk/res/android "android: layout_width = " match_parent "android: layout_height = " match_parent "android:取向=“垂直”android: weightSum = " 1.0 "android:背景= " @android:颜色/黑”><按钮android: layout_width = " wrap_content "android: layout_height = " wrap_content "android:文本= "选择画廊”的形象android: onClick = " onSelectImage " /><leadtools.controls.RasterImageViewerandroid: id =“@ + id / rasterimageviewer”android: layout_width = " match_parent "android: layout_height = " 0 dp”android: layout_weight = " .96点"android:背景=“@android:颜色/白色/><按钮android: id =“@ + id /按钮”android: layout_width = " wrap_content "android: layout_height = " wrap_content "android:文本= " OCR运行”android: onClick = " ocr " /><LinearLayout />

添加代码中提取文本

MainActivity.java前,添加以下导入语句MainActivity类:

Java
进口leadtools.ocr.OcrEngine;进口leadtools.ocr.OcrEngineManager;进口leadtools.ocr.OcrEngineType;进口leadtools.ocr.OcrImageSharingMode;进口leadtools.ocr.OcrPage;进口leadtools.ocr.OcrPageCharacters;进口leadtools.ocr.OcrWord;进口leadtools.ocr.OcrZoneCharacters;

添加以下MainActivity类的成员变量:

Java
私人OcrEngine OcrEngine;私人StringBuilder某人;

更新onCreate ()函数如下所示:

Java
@Override受保护的无效onCreate(包savedInstanceState) {超级.onCreate (savedInstanceState);setContentView (R.layout.activity_main);/ /加载LEADTOOLS本地库试一试{Platform.setLibPath (sharedLibsPath);Platform.loadLibrary (LTLibrary.LEADTOOLS);Platform.loadLibrary (LTLibrary.CODECS);Platform.loadLibrary (LTLibrary.OCR);Platform.loadLibrary (LTLibrary.DOCUMENT_WRITER);Platform.loadLibrary (LTLibrary.IMAGE_PROCESSING_CORE);}(异常交货){Log.d(标签,“失败加载LEADTOOLS本地库”);}某人=StringBuilder ();.getPath字符串sdCardRoot = Environment.getExternalStorageDirectory () ();/ /如果(! sdCardRoot.endsWith (“/”))sdCardRoot + =“/”;字符串resourceDir = sdCardRoot +“MyApp /”;字符串ocrLanguageFileDir = resourceDir +“OCRRuntime /”;字符串substitutionFontsDir = resourceDir +“SubstitutionFonts /”;如果(! Utils.copyOcrRuntimeFiles (,ocrLanguageFileDir)) {Log.d(标签,“未能复制OCR语言文件”);完成();}如果(! Utils.copyAssetsFiles (,“substitution_fonts”,substitutionFontsDir)) {Log.d(标签,“失败的副本替换字体”);完成();}试一试{/ /设置替换字体路径和启动OCR引擎RasterDefaults.setResourceDirectory (LEADResourceDirectory。字体,substitutionFontsDir);ocrEngine = OcrEngineManager.createEngine (OcrEngineType.LEAD);ocrEngine.startup (,,,ocrLanguageFileDir);}(异常e){Toast.makeText (Toast.LENGTH_LONG e.getMessage()),告诉();}如果! (ocrEngine.isStarted ()){Toast.makeText (,“OCR引擎没有开始成功”Toast.LENGTH_LONG),告诉();}}

创建一个ocr(查看v)允许文件的解析函数。添加以下代码:

Java
公共无效ocr(查看v){RasterImage图像= mViewer.getImage ();如果(图片! =){OcrPage OcrPage = ocrEngine。createPage(图片、OcrImageSharingMode.AUTO_DISPOSE);ocrPage.recognize ();OcrPageCharacters OcrPageCharacters = ocrPage.getRecognizedCharacters ();(OcrZoneCharacters ocrzonechar ocrpageCharacters):{收集< OcrWord >词= ocrzonechar.getWords ();(OcrWord词:词){sb.append (word.getValue ());}}Toast.makeText (Toast.LENGTH_LONG sb.toString()),告诉();}其他的{Toast.makeText (,“没有加载文件”Toast.LENGTH_LONG),告诉();}}

运行该项目

新闻Shift + F10运行该应用程序。遵循以下步骤来测试应用程序。

总结

本教程展示了如何运行OCR识别图像。

另请参阅

iOS
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2023领先的技术公司。保留所有权利。