离线状态下android studio的tesseract配置方法

时间:2023-01-23 08:58:41

         最近由于工作的要求,需要在android上做一个能进行OCR的应用,作为一名初级码农,要做的第一步当然是在网上去找找有没有现成的库啦。经过一番挑选,发现相对成熟的安卓OCR库包括tesseract和OpenCV,然后果断选择了tesseract,tesseract更新又多,资料也全,也开源,还是google的,讲话又好听,哦哟超喜欢在里面。

        离线状态下android studio的tesseract配置方法离线状态下android studio的tesseract配置方法

         真的太喜欢老哥了,作为老哥的迷弟,强行地为他放一张图。

=========================================================一本正经的分割线=============================================================

         其实这篇文章主要是针对于无法联网的情况下的tesseract的配置,我主要是因为公司的开发环境不允许联网,所以只能离线安装,可能也会有跟我同样需求的小伙伴,所以这里分享一下,也便于自己以后查阅。

 

         首先是需要下载一个tesseract的包,这里引用了别人的github上的连接,可以直接下载:

         https://github.com/rmtheis/tess-two 

         下载完之后解压可以得到这些文件:

        离线状态下android studio的tesseract配置方法离线状态下android studio的tesseract配置方法

将红色的部分解压,通过android studio进行导入,这里我没有用android studio自带的import module来进行导入,想用这个方法的朋友可以自行尝试,我是直接在setting.gradle里面添加了一行include。这里我的导入方法分为两步,第一步是复制上边的tess-two文件夹到自己要导入的项目文件夹的根目录,我的项目名称是MyApplication2,如下图:

        离线状态下android studio的tesseract配置方法离线状态下android studio的tesseract配置方法

直接放到这里,然后是第二步,在settting.gradle里面添加包含,如下图:

离线状态下android studio的tesseract配置方法离线状态下android studio的tesseract配置方法

加入一句include’:tess-two’,这里说一句,根据gradle的版本不同,这里的include’:tess-two’可能格式不正确,另一个格式应该是include:’tess-two’,总之与上一行中的include的格式保持一致即可。

这里做好之后还不能完成,还需要进行ndk的配置,我的androidstudio的版本是1.5,因为不能联网也没去更新,新的android studio对于ndk的支持似乎比较成熟了,可以跳过下一步关于ndk的配置。

打开file->projectstructure,可以看到关于sdk、jdk、以及ndk的三个目录配置文本框,sdk和jdk都是配置好的不用管(没配置好就不用写android程序了…),这里直接把ndk的文件夹目录放进去就可以,要注意的一点是ndk的文件目录不能有中文和空格,不然会出错,我是直接放到了sdk文件夹的同一目录下,也方便以后查找。如下图:

离线状态下android studio的tesseract配置方法 离线状态下android studio的tesseract配置方法

完成到了这一步,如果直接点gradle的sync now或者try again就可以进行导入了,但是在tess-two的模块当中还有关于maven和bintray的部分,会报类似于pluginnot found的错误,网上的解决方法一般是修改自己maven和bintray的版本来匹配查找,但是我看了看自己的as里面根本就没有安装bintray插件,很无奈。想了想,这里有两个解决方案,一个是下载插件手动安装,另一个是直接不使用这两个插件,因为看了一看这两个插件都是联网导入网络库以及上传分享自己项目的模块,与OCR的核心功能无关,于是我就直接将gradle里面关于maven和bintray的部分给注释掉了,如下两图:

        离线状态下android studio的tesseract配置方法

离线状态下android studio的tesseract配置方法

注释掉上两图中的灰色部分。

这样配置完成之后就可以直接点gradle的sync now或者try again按钮进行导入了,我的办公电脑的配置是i3-2100+6g内存,用了十多分钟导入完成,然后就可以开始撸OCR啦,放一张导入成功的图片:

离线状态下android studio的tesseract配置方法离线状态下android studio的tesseract配置方法

花了16分钟多,就行了。

最后再推荐一个网站:https://developers.google.cn/

这个是google在国内的便于开发者访问的网站,可以不用vpn咯,关于ndk的下载也可以到这个网站去,点进去android自己找找就行。当然我还是会把链接直接粘上来啦,毕竟我是个懒人,懂得偷懒的秘方:

https://developer.android.google.cn/ndk/downloads/index.html

点进去根据自己的系统选择下载就可以了。