上文选定了图片剪裁工具为Android-cropper,开始尝试和Tess-two结合使用
第1步: 流程:图像选取(拍照或从图库选取)—> 裁剪图片 —> 识别图像中的文字
第2步:发现Android-cropper内置功能有拍照或从图库中选取图片进行剪裁的功能接口,可以直接调用,参 考链接为:Android-Image-Cropper/wiki/Pick-image-for-cropping-from-Camera-or-Gallery
第3步:找到一个可用的主界面代码,参考网址为:Android 增强版百分比布局库 为了适配而扩展,修改后界面如下:
第4步:导入Tess-two
开源代码地址为:GitHub - rmtheis/tess-two: Fork of Tesseract Tools for Android
无需其他操作,仅需在项目App下的build.gradle文件中添加一行即可
在dependencies中添加语句compile'com.rmtheis:tess-two:8.0.0'
第5步:导入Android-Image-Cropper里面的test模块和其所依赖的Cropper模块,导入后目录结构为:
同样在dependencies中添加语句compile project(path:':cropper')即可。
第6步:实现点击图像选取进入含有图像裁剪功能的模块
第7步:实现点击图像识别进入含有图像识别的Tess-two模块
参考tess_two Android图片文字识别 - 简书来实现安卓平台上的图像文字识别。
在图片在活动之间传递的处理中,看到了一篇整理好的博客:Android 中ImageView 显示图片的几种方法简要分析
第8步:实现Tess-two模块的图像文字识别功能的调用,接收来自主活动的裁剪后的图像的Uri , 读取bitmap图像进行识别。参考了这个链接:android 读取本地图片生成 bitmap
发现每次执行到“tessBaseApi =new TessBaseAPI();”的时候都闪退,进入函数过程中遇到这个报错: java.lang.UnsatisfiedLinkError: couldn't find "libjpgt.so"找不到库,执行到下列语句时报错。
参考这个链接:Android Studio下jni应用 - balenofly - 博客园,在文件资源管理器找到图中的.apk文件,拷贝出来将其后缀名改为.zip文件,然后在项目的main目录下新建jniLibs文件夹,并将.zip文件中lib目录下的文件拷贝到libs和jniLibs目录下,再运行就成功了。
最后,图像的文字识别终于成功了,效果如下:
网友评论