安卓图片OCR识别技术 tesseract研究文档

针对安卓APP的 OCR图片识别技术研究与 DEMO: 鉴于大家都给我发私信要源码:现在更新源码 在下载(由于最近CSDN下载分不够了。。所以要了10分 还希望大家理解哦) http://download.csdn.net/detail/wei2253498/7146411 通过近端时间的在网络上的学习,了解了俩个OCR的技术,包括tesseract 和 openCv这俩个技术 主要研究了tesseract的OCR技术,并通过模拟器做了个demo app下面与大家分享过程,希望共同进步。 Tesseract OCR引擎是1995年UNLVAccuracy大赛中的排名前三的引擎。1995年到2006年间,它没有大的改进;之后,它被谷歌大幅改进,很可能是识别率最高的可用开源OCR引擎之一了。结合Leptonica图像处理库,它能读取各种各样格式的图像文件,识别出超过40多种语言的文本。 Tesseract的下载地址为: http://code.google.com/p/tesseract-ocr/downloads/list Tesseract for android 的 tess-two下载地址为: https://github.com/rmtheis/tess-two/archive/master.zip 接下来需要对下载下来的tess-two进行编译 如何用android ndk进行so的编译我放在了另外的一个文档中,大家请参考 也可以直接下载编译好的tess-two so文件 http://download.csdn.net/detail/uniquerhythm/5166651 编译好后,将src下的两个包以及libs导入到自己的项目就可以用啦 接下来我们还需要 tessract的android jar包 Android官方地址:tesseract-android-tools http://code.google.com/p/tesseract-android-tools/downloads/list?can=1&q= 但它必须要一个匹配库,即tessdata,我们可以从官方拷贝,在前面git的项目里面tesseract源码目录有现成的tessdata可以用,对于中文,googlecode上也有下载,当然也可以自己训练不同语言的tessdata。 包leptonica的类我们不必使用,只要使用tess包的类就行了 下面是 tessBaseAPI的主要用法 TessBaseAPI **[java]** [view plain](http://blog.csdn.net/wei2253498/article/details/8748741#)[copy](http://blog.csdn.net/wei2253498/article/details/8748741#)[print](http://blog.csdn.net/wei2253498/article/details/8748741#)[?](http://blog.csdn.net/wei2253498/article/details/8748741#)[![在CODE上查看代码片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/274921)[![派生到我的代码片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/274921/fork) <div> </div> </div> - <span style="color: black;"><span class="comment" style="color: #008200;">//////////////////////华丽的分割线//////////////////////////////////////////////////////</span> </span> - <span style="color: black;"> </span> - <span style="color: black;">TessBaseAPI baseApi=<span class="keyword" style="font-weight: bold; color: #006699;">new</span> TessBaseAPI(); </span> - <span style="color: black;"> </span> - <span style="color: black;"><span class="comment" style="color: #008200;">//初始化tess</span> </span> - <span style="color: black;"><span class="comment" style="color: #008200;">//android下面,tessdata肯定得放到sd卡里了</span> </span> - <span style="color: black;"><span class="comment" style="color: #008200;">//如果tessdata这个目录放在sd卡的根目录</span> </span> - <span style="color: black;"><span class="comment" style="color: #008200;">//那么path直接传入sd卡的目录</span> </span> - <span style="color: black;"><span class="comment" style="color: #008200;">//eng就是英文,关于语言,按ISO 639-3标准的代码就行,具体请移步wiki</span> </span> - <span style="color: black;">baseApi.init(<span class="string" style="color: blue;">&#8220;tessdata文件夹的父级目录&#8221;</span>,<span class="string" style="color: blue;">&#8220;eng&#8221;</span>); </span> - <span style="color: black;"> </span> - <span style="color: black;"><span class="comment" style="color: #008200;">//options是为了缩放图片,这个酌情缩放,图片小的话可以不缩放</span> </span> - <span style="color: black;">BitmapFactory.Options options=newBitmapFactory.Options(); </span> - <span style="color: black;"><span class="comment" style="color: #008200;">//缩小为原来的1/2</span> </span> - <span style="color: black;">options.inSampleSize=<span class="number" style="color: #c00000;">2</span>; </span> - <span style="color: black;"> </span> - <span style="color: black;"><span class="comment" style="color: #008200;">//bitmap,我这里是以流的形式,只要能形成Bitmap就行</span> </span> - <span style="color: black;">Bitmap bitmap = BitmapFactory.decodeStream(instream,<span class="keyword" style="font-weight: bold; color: #006699;">null</span>,options); </span> - <span style="color: black;"> instream.close(); </span> - <span style="color: black;"><span class="comment" style="color: #008200;">//设置要ocr的图片bitmap</span> </span> - <span style="color: black;">baseApi.setImage(bitmap); </span> - <span style="color: black;"><span class="comment" style="color: #008200;">//根据Init的语言,获得ocr后的字符串</span> </span> - <span style="color: black;">String text= baseApi.getUTF8Text(); </span> ...

2014年5月9日 · 2 分钟 · 天边的星星

实现android图像识别的几种方法

点击这里下载第一种代码 最近完成了毕业设计,论文名为基于图像识别的移动人口管理系统。编写过程中学到了几种图像识别的技术,先写下来与大家分享。 第一种,直接使用免费得图像识别web服务器 地址为http://maggie.ocrgrid.org/ 实现代码:1.为了提高图像的识别率,首先要灰度化 **[java]** [view plain](http://blog.csdn.net/dannor2010/article/details/7073528#)[copy](http://blog.csdn.net/dannor2010/article/details/7073528#) <div> </div> <div> </div> </div> - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">private</span> Bitmap convertToGrayscale(Bitmap bitmap) { </span> - <span style="color: black;"> ColorMatrix colorMatrix = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> ColorMatrix(); </span> - <span style="color: black;"> colorMatrix.setSaturation(<span class="number" style="color: #c00000;"></span>); </span> - <span style="color: black;"> Paint paint = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> Paint(); </span> - <span style="color: black;"> ColorMatrixColorFilter cmcf = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> ColorMatrixColorFilter(colorMatrix); </span> - <span style="color: black;"> paint.setColorFilter(cmcf); </span> - <span style="color: black;"> </span> - <span style="color: black;"> Bitmap result = Bitmap.createBitmap(bitmap.getWidth(), bitmap </span> - <span style="color: black;"> .getHeight(), Bitmap.Config.RGB_565); </span> - <span style="color: black;"> </span> - <span style="color: black;"> Canvas drawingCanvas = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> Canvas(result); </span> - <span style="color: black;"> Rect src = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> Rect(<span class="number" style="color: #c00000;"></span>, <span class="number" style="color: #c00000;"></span>, bitmap.getWidth(), bitmap.getHeight()); </span> - <span style="color: black;"> Rect dst = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> Rect(src); </span> - <span style="color: black;"> drawingCanvas.drawBitmap(bitmap, src, dst, paint); </span> - <span style="color: black;"> </span> - <span style="color: black;"> <span class="keyword" style="font-weight: bold; color: #006699;">return</span> result; </span> - <span style="color: black;"> } </span> 2.将灰度化的图像上传到http://maggie.ocrgrid.org/ 方法和类就不说了,有需要的话可以发我邮箱 ...

2014年5月9日 · 1 分钟 · 天边的星星