安卓平台下的OCR程序

上传人:付** 文档编号:88506418 上传时间:2019-04-29 格式:PPT 页数:21 大小:1.32MB
返回 下载 相关 举报
安卓平台下的OCR程序_第1页
第1页 / 共21页
安卓平台下的OCR程序_第2页
第2页 / 共21页
安卓平台下的OCR程序_第3页
第3页 / 共21页
安卓平台下的OCR程序_第4页
第4页 / 共21页
安卓平台下的OCR程序_第5页
第5页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《安卓平台下的OCR程序》由会员分享,可在线阅读,更多相关《安卓平台下的OCR程序(21页珍藏版)》请在金锄头文库上搜索。

1、毕业答辩,题 目:安卓平台下的OCR程序开发,目录,绪论 开发平台和背景 需求分析 开发环境搭建 系统设计 程序的实现 系统的测试、维护和软件说明,研究目的意义,随着现代社会资讯的复杂化,用户在日常生活中对于从图片中提取文字的需求越来越大。比如从名片中提取其中的信息,从纸张上获得句子进行翻译等。而智能手机作为如今最普遍的终端设备,其对这项应用的需求也自然越来越大。 而本程序即被开发用来满足智能移动终端的这种需求,为智能手机、平板电脑等提供一个简单适用的光学字符识别软件。,开发平台和背景,安卓平台 Android ,中文俗称安卓,是一个以Linux为基础的半开源操作系统,主要用于移动设备,由Go

2、ogle成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发中。 安卓的系统架构 Android的系统架构和其操作系统一样,采用了分层的架构。Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux核心层。,开发平台和背景,Linux Linux是一种自由和开放源代码的类UNIX操作系统。定义Linux的组件是Linux内核,该操作系统内核由Linus Torvalds在1991年10月5日首次发布。Linux是一个领先的操作系统,可以运行在服务器和其他大型平台之上,如大型主机和超级计算机。同时Linux也广泛应用在

3、嵌入式系统上,如手机,平板电脑,路由器,电视和电子游戏机等。基于Linux的系统是一个模块化的类Unix操作系统。Linux系统使用单内核,由Linux内核负责处理进程控制、网络,以及外围设备和文件系统的访问。在系统运行的时候,设备驱动程序要么与内核直接集成,要么以加载模块形式添加。因此Linux具有设备独立性,它内核具有高度适应能力,从而给系统提供了更高级的功能。 Java Java是一种电脑编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。Java编程语言的风格十分接近C+语言。继承了C+语言面向对象技术的核心,Java舍弃了C+语言中容易引起错

4、误的指針,改以引用取代,同时移除原C+与原来运算符重载,也移除多重继承特性,改用接口取代,增加垃圾回收器功能。Java不同于一般的编译语言和直译语言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。,开发平台和背景,光学字符识别 光学字符识别(英语:Optical Character Recognition, OCR)是指对文本资料的像文件进行分析处理,获取文字及版面信息的过程。 识别过程 图像输入、预处理: 图像输入:对于不同的图像格式,有着不同的存储格式,不同的压缩方式,目前有openCV、CxImage等开源项目。

5、 预处理:主要包括二值化,噪声去除,倾斜较正等。 二值化: 对摄像头拍摄的图片,大多数是彩色图像,彩色图像所含信息量巨大,对于图片的内容,我们可以简单的分为前景与背景,为了让计算机更快的、更好地识别文字,我们需要先对彩色图进行处理,使图片只前景信息与背景信息,可以简单的定义前景信息为黑色,背景信息为白色,这就是二值化图。,开发平台和背景,噪声去除: 对于不同的文档,我们对燥声的定义可以不同,根据燥声的特征进行去燥,就叫做噪声去除。 倾斜较正: 由于一般用户,在拍照文档时,都比较随意,因此拍照出来的图片不可避免的产生倾斜,这就需要文字识别软件进行较正。识别看看、TryOCR、汉王OCR、紫光OC

6、R都带有这方面的功能,而且效果不错。 版面分析: 将文档图片分段落,分行的过程就叫做版面分析,由于实际文档的多样性,复杂性,因此,目前还没有一个固定的,最优的切割模型。 字符切割: 由于拍照条件的限制,经常造成字符粘连,断笔,因此极大限制了识别系统的性能,在众多文字识别软件中,识别看看、TryOCR、汉王OCR、紫光OCR在这方面做得不错,在他们的软件中有显示字符切割的效果。,开发平台和背景,字符识别: 这一研究已经是很早的事情了,比较早有模板匹配,后来以特征提取为主,由于文字的位移,笔画的粗细,断笔,粘连,旋转等因素的影响,极大影响特征的提取的难度。 版面恢复: 人们希望识别后的文字,仍然像

7、原文档图片那样排列着,段落不变,位置不变,顺序不变地输出到Word文档、PDF文档等,这一过程就叫做版面恢复。 后处理、校对: 根据特定的语言上下文的关系,对识别结果进行较正,就是后处理。 Tesseract引擎 Tesseract是一种能运行在多种操作系统上的光学字符识别软件。其最初是作为惠普的专有软件而被开发,2005惠普将其改为开源软件。2006年谷歌开始维护其代码的开发。Tesseract被认为是目前最精确的免费OCR引擎。本应用中使用其安卓移植版,Tess-two引擎,需求分析,系统概述 根据实现功能不同,我们可以将系统分为两个部分:图片提取部分和文本分析部分。其中图片提取部分用来获

8、得以及保存需要进行分析的图片。属于用户交互部分的设计。具体功能如下:拍照以及从图库中选择图片。用户可以在主界面调用系统的摄像功能,之后可以将获得的照片保存或者进行文本分析;除了通过拍照获得图片外,用户也可以调用系统图库中的图片,以及在联网时选择网络中的图片进行分析。 文本分析部分为进行文本分析的逻辑部分。属于程序的核心功能设计。具体功能如下:接收部分在接收到数据后,会自动分析数据的可以,从而将照片、图库中的图片以及网络图片,转化为分析时所使用的图片格式;分析部分会根据用户选择的将要提取的语言从图片中分析文字信息;输出部分在获得提取出的文字后将会把文字流传给编辑页面,方便用户进行校正和保存等。

9、可行性分析 可行性分析是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和进行的市场调查得出以下四点的可行性分析:,需求分析,经济可行性:随着安卓平台越来越流行,基于安卓平台的应用程序将会越来越多的受到广告商的重视,因此拥有众多用户的安卓应用将会从广告中获得较为可观的经济收益,而目前普通用户对OCR应用的需求越来越大。而另一方面安卓平台开发快速,便捷,需要投入的资源并不多。因此无论从开发还是获益来看,这个安卓平台上的OCR程序都有很好的发展前景。 技术可行性:安卓已经

10、成为最流行的智能机平台,因此关于安卓开发的资料和文档齐全详细,相关技术业已成熟,而tesseract 光学字符识别库则是用惠普开发,现在则由谷歌进行维护和研发的。因此本应用在技术上具有良好的可行性。 由分析可得,不论是经济还是技术上,基于安卓平台的OCR的开发都是可行的。,开发环境搭建,Java和Eclipse的安装 由于是在Debian Gnu/Linux下进行开发的,因此可以使用系统的apt包管理器进行安装。 安装Java: apt-get install openjdk-6-jdk 安装Eclipse: apt-get install eclipse eclipse-jdt eclips

11、e-pde eclipse-anyedit 安卓SDK安装和配置 在安卓官网http:/ PATH=安装路径/android-sdk-linux/tools:安装路径/android-sdk-linux/platform-tools:$PATH解压后的SDK里面工具并不完整需要更新后才能使用,运行tools下的android程序,等到数据更新后选择需要下载和安装的内容进行更新。 ADT安装和配置,开发环境搭建,ADT是Eclipse的安卓开发插件,使得Eclipse能高效快速的开发可靠的安卓应用程序安装步骤: 启动Eclipse,选择HelpInstall New Software 点击Add

12、,在Name中输入”ADT Plugin”,Location中输入”http:/dl- 在Developer Tools中选择”Android DDMSAndroid DevelopmentToolsAndroid Hierarchy ViewerAndroid Traceview”,点击下一步-下一步,选择接受,点击结束 配置 选择WindowPreferences选择左边列表中的Android,指定SDK的路径 模拟器的配置 安卓SDK自带一个安卓模拟器,但因为其特殊的架构,导致其运行缓慢迟缓,并不太适合程序的快速开发和调试。 而比较好的解决方法是将在Virtualbox上运行的Andro

13、id-x86系统来作为模拟和调试工具。,开发环境搭建,网络配置 在VirtualBox的“全局设定”中,选择“网络”,添加一个虚拟网卡,并开启DNS服务。 在虚拟机的“设置”中,选择”网络“,连接方式选为Host-Only 在Android中打开终端,分别输入: #su ;用于获得管理员权限 #dhcpcd eth0 ;自动获得IP #setprop net.dns1 8.8.8.8 ;设置DNS Server 此时宿主机和客户机已经可以相互Ping通了,可用通过adb connect连接安卓系统了 打开eclipse,进入android开发插件的设定界面,选择ddms,勾选 Use ado

14、host, 并在ADT host value 一栏填写虚拟机的ip地址,程序的实现,概述 本项目含有三个Activity,和一个被写成库的类。有四个layout。项目中坚持代码和数据分离的原则,代码中的所有数据操作都是抽象的,因此可以通过对数据的修改来增加程序的可移植性。 主界面 在程序的主界面中,会显示已经保存的图片和文本,用户可以删除或则使用这些资源。并可以选择需要扫描的语言。用户可以通过调用系统的相机或则从系统的存储器上选择图片进行分析。,程序的实现,主界面程序流程图,程序的实现,确认界面 确认界面是用来确定是否选择图片进行扫描,并且当图片还未保存时可以选择是否保存图片。,程序的实现,编

15、辑页面 编辑页面是用来对分析出来的文本进行编辑以及命名、保存用的。,程序的实现,系统摄像和图片选择 程序中使用onActivityResult这个回调函数,来处理其他Activity的带值返回。这里 程序使用了系统的摄像和文件选择功能,这两个功能调用都是带值返回,因此都在这里处理。此处程序通过检查来区分安卓的不同返回方式,是返回图片实体,还是返回图片的URI. 流程图,程序的实现,弹出菜单 程序中使用onContextItemSelected是来处理弹出菜单的回调函数。在本程序中用户可以 通过在ListView的每一项上长按来调出菜单。在菜单中用户可以选择使用或则删除选中的图片或则文本。在onContextItemSelected中,程序对不同功能以及不同的文件类型都做了区分和判断。 流程图,致谢,在本论文的写作过程中,我的导师老师倾注了大量的心血,从选题到开题报告,从写作提纲,到一遍又一遍地指出每稿中的具体问题,严格把关,循循善诱,本文的写作正是直接得益于她的悉心指点,从论文的选题到体系的安排,从观点推敲到字句斟酌,无不凝聚着她的心血。滴水之恩,当以涌泉相报,师恩重于山,师恩难报。我只有在今后的学习、工作中,以锲而不舍的精神,努力做出点成绩。同时我还要感谢在我学习期间给我极大关心和支持的各位老师以及关心我的同学和朋友。,谢谢观赏,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 计算机应用/办公自动化

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号