欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 毕业论文 > 计算机毕业论文

用C#识别图像中的文字_MODI

时间:2013-03-20  作者:王改芬

论文导读::在这里我们使用C#来进行MODI程序的开发和示例。当我们安装Office选择安装MODI后。技术非常专业。
论文关键词:C#,MODI,OCR
 

1、 前言

光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。OCR技术非常专业,一般多是印刷、打印行业的从业人员使用,可以快速的将纸质资料转换为电子资料。关于中文OCR,目前国内水平较高的有清华文通、汉王、尚书,其产品各有千秋,价格不菲。国外OCR 发展较早MODI,像一些大公司,如IBM、微软、HP等,即使没有推出单独的OCR产品,但是他们的研发团队早已掌握核心技术,将OCR功能植入了自身的软件系统。

MODI也就是Office 2003中的MicrosoftOffice Document Imaging 的缩写,它是我们安装Office时需要选择安装的一个组件。当我们安装Office选择安装MODI后,我们就可以轻松的把MODI中的OCR功能添加扫我们的应用程序中去。在MODI的帮助下,我们只需要写很少的代码就能够完成OCR的功能。

2、 MODI的应用

由于MODI组件是Office 2003自带的一个组件,所以我们必须安装Office 2003以上版本才会有MODI组件。当我们在使用MODI进行开发的时候,只要支持外部引用的编译器都可以使用MODI组件。在这里我们使用C#来进行MODI程序的开发和示例。

2.1 添加MODI组件

我们首先需要添加MODI引用到我们的工程文件中去。我们在添加引用库的时候,选择COM组件库,我们可以看到Microsoft Office DocumentImaging 11.0 Type Library组件(对应文件为MDIVWCTL.DLL)。添加成功后,我们可以在VS2008 C#的解决方案管理器的引用栏中看到MODI项,这就说明我们添加MODI成功了。

2.2 利用MODI组件中的Document对象

Document对象是MODI中最重要的一个对象,它提供了图片的引入、扫描等重要的方法。在这里我们首先创建一个MODI中的Document对象的一个实例:

MODI.Document_MODIDocument = newMODI.Document();

然后把需要处理的文档图片准备好。图片的格式为TIFF或者BMP。当然我们有必要首先对图片进行一些必要的处理,尽量让图片干净、清晰论文网站大全。然后可以利用Document对象中的Create()方法,引入图片文档:_MODIDocument.Create(filename);期中MODI,filename为图片文档的路径。

2.3 运用Document对象的OCR方法,进行文字的处理

OCR( )方法是文字识别的一个重要的方法,它决定了图片识别的精度。

_MODIDocument.OCR(_MODIParameters.Language,

_MODIParameters.WithAutoRotation,

_MODIParameters.WithStraightenImage);

在调用了OCR方法之后,所有图片的文档就已经被处理好了。若图片文档有很多页,如果想单独的处理某一页,可以调用MODIimage.OCR()方法来单独处理。

其中OCR()方法中有三个重要的参数,分别为:

①Language ②AutoRotation③StraightenImage

这三个参数的设置是与图片文档上面的字符类型、格式密切相关的。

其中,第一个参数Language,表示的是当前文档上的字符是哪种语言的字符,我们只要选择相对应的语言参数就可以了;

第二个参数AutoRotation,是个布尔型的参数,表示的是自动旋转设置。可能图片的文档方向不是正向的,所以需要设置这个参数来开启是否自动旋转功能;

第三个参数StraightenImage,表示的是自动扶直图片。当字体有倾斜时,设置此选项可以自动纠正文字的倾斜。

这三个参数根据文档的具体情况来设置,才能达到更精确的效果。下图为选择OCR参数后开始OCR的界面。

MODI

图1 图像文字识别

2.4 追踪OCR扫描的进度

整个OCR过程可能会花去一些时间,我们可以关注这个扫描的过程。因此利用OnOCRProgress事件MODI,来跟踪整个OCR的处理过程。

利用下面的代码,就可以跟踪OCR的处理进度。

_MODIDocument.OnOCRProgress += newMODI._IDocumentEvents_OnOCRProgressEventHandler(this.ShowProgress);

public void ShowProgress(int progress,ref bool cancel)

{ statusBar1.Text =progress.ToString() + '% processed.'; }

2.5 利用MODI中的Document Viewer对象

Document Viewer对象和Document对象一样,都属于同一个组件库MDIVWCTL.DLL,只需要对Document Viewer有个简单的声明,就可以使用Document Viewer对象了。运用Document Viewer对象可以对图片文件进行选择、画图等操作。

MODI.MiDocView ax MiDocView1=newMODI.MiDocView( );

axMiDocView1.Document = _MODIDocument;

处理OCR之后的结果

for(inti=0;i<= axMiDocView1.PageNum;i++)

{axMiDocView1.selectAll(i); }

string ocrResult= axMiDocView1.TextSelection.Text.ToString();

到这里就可以得到图片文件中所包含的文字了。这里选择图一中的拷贝文字到剪贴板后,将文字拷贝到文本文件中,效果如下图所示:

MODI

图2 图像文字识别结果

3、 结果分析及其结论

运用Office中自带的MODI组件,可以快速而有效的编写相关的OCR,但是识别精度和图片文档的质量与清晰度有关。运用MODI就可以很轻松的开发出很专业的OCR 程序,既节约了时间,又节约了成本。


参考文献
[1]Office 2003 Editions:VBA Language Reference for the Document Imaging Object Modelhttp://www.microsoft.com/downloads/en/details.aspx?familyid=7B6D9193-A1C8-4934-8007-47089FDE37DE&displaylang=en
[2]http://www.webopedia.com/TERM/O/optical_character_recognition.html
[3]罗宾逊,内格尔.c #高级编程[M】.北京:清华大学出版社,2005.
[4]伯克斯.EffectiveCOM 中文版[M】.北京:中国电力出版社,2003 .
[5]】Victor Wu, Manmatha Edward R. ,Riseman M. Finding text in images[A] Proceedings of the 2rd ACM Conference onDigital Libraies [ C ] .Philaphia PA ,2005
 

 

查看相关论文专题
加入收藏  打印本文
上一篇论文:Oracle Data Guard容灾备份方案在医院信息系统中的应用
下一篇论文:用MatlabGUI模拟圆环和矩形环夫琅禾费衍射
毕业论文分类
行政管理毕业论文 工商管理毕业论文
护理毕业论文 会计毕业论文
会计专业毕业论文 英语专业毕业论文
大学毕业论文 硕士毕业论文
计算机毕业论文 市场营销毕业论文
物流管理毕业论文 法学毕业论文
相关计算机毕业论文
最新计算机毕业论文
读者推荐的计算机毕业论文