浅谈OCR之Onenote 2010
上一次我们讨论了Tesseract OCR引擎的用法,作为一款老牌的OCR引擎,目前已经开源,最新版本3.0中更是加入了中文OCR功能,再加上Google的更新、维护,可以说是潜力很大,值得期待。由上一次的测试结果也可以看出,Tesseract的OCR结果还不是很理想,尤其是中英文混合的文字,其识别率有限。本次我们来关注下Office 2010中的Onenote,调用其API来测试OCR功能。
PS:在公司经理一直推荐使用MyBase来记录工作中遇到的问题、工作日志等,但是我一直坚持使用Onenote :)
在Visual Studio 2010 Ultimate + Onenote 2010 x64中测试通过
转载请注明出处:http://www.cnblogs.com/brooks-dotnet/archive/2010/10/07/1845313.html
1、Onenote 2010 新特性:
New features in 2010:
Gather, organize, and search |
Sharing and universal access |
|
|
Examples:
Organize topics using subpages Drag tabs to indent and organize pages within a section. |
|||||
Keep notes visible during other tasks OneNote will link notes to documents and Web pages you view.
|
|||||
What's new in a shared notebook? Unread changes are shown automatically. |
|||||
What notes are teammates working on?
|
|||||
Select location when sending to OneNote When sending from Outlook or Internet Explorer |
|||||
Link to information for yourself and others
|
More Resources Online
Videos, templates, training, help, and discussion groups.
Microsoft® OneNote® 2010 Guide Notebook
Copyright © 2009 Microsoft Corporation. All rights reserved.
The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name, email address, logo, person, places, or events is intended or should be inferred.
2、Onenote中的OCR功能
园子里的朋友斯克迪亚很早就写过一片博文,详细介绍了GUI下使用OCR功能的方法,当时我也看了,想用编程来实现Onenote的OCR功能。后来忙其他事就没有细究,国庆假期我正好在查找一些OCR工具,又想起了这回事,于是多方查找资料、测试,今天终于是略有小成,特与大家分享。程序还存在很多问题,欢迎拍砖。
2.1、关于Onenote OCR功能的一处细节要先提一下,那就是如果从网络上复制一幅图片到Onenote中,是无法进行OCR的;但是如果从本地插入一幅图片到Onenote中,则可以进行OCR:
左边是本地图片,右边是网络图片,可以看出,网络图片右键菜单中的【Copy Text from Picture】是灰掉的,无法点击。
2.2、我用WPF写的小程序界面如下,和上一次TesseractGUI如出一辙,不过是换药未换汤。
左边选择图片,支持本地图片、网络图片预览、缩放、移动,右边选择输出目录、显示OCR结果:
2.3、MSDN杂志上有一篇文章给了我很大的启发,介绍了Onenote 2010中的对象模型,感兴趣的朋友可以深入阅读。CodePlex上还有一个托管的Onenote对象模型项目ONOM,对Onenote PIA提供了更好的封装。建立WPF项目并添加引用时要注意一下:
首先,由于与 Visual Studio 2010 随附的 OneNote 互操作程序集不匹配,您不应该在"添加引用"对话框的".NET"选项卡上直接引用 Microsoft.Office.Interop.OneNote 组件,而是应该在"COM"选项卡上引用 Microsoft OneNote 14.0 类型库组件。这样做仍会向项目的引用中加入 OneNote 互操作程序集。
其次,OneNote 14.0 类型库与 Visual Studio 2010"NOPIA"功能不兼容。在 NOPIA 功能中,主互操作程序集默认情况下不会嵌入到应用程序中。因此,请务必将 OneNote 互操作程序集引用的"嵌入互操作类型"属性设置为 False。
2.4、Onenote没有采用OpenXML格式进行描述,而是使用了原始的XML ,一个完整的页面的描述代码如下:
<one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{6506BE8D-72F1-461D-AB41-632D60CCD6D3}{1}{B0}" name="Untitled page" dateTime="2010-10-06T02:33:02.000Z" lastModifiedTime="2010-10-06T05:26:59.000Z" pageLevel="1" isCurrentlyViewed="true">
<one:QuickStyleDef index="0" name="PageTitle" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="17.0" spaceBefore="0.0" spaceAfter="0.0"/>
<one:PageSettings RTL="false" color="automatic">
<one:PageSize>
<one:Automatic/>
</one:PageSize>
<one:RuleLines visible="false"/>
</one:PageSettings>
<one:Title lang="zh-CN">
<one:OE author="Brooks" authorInitials="WS" lastModifiedBy="Brooks" lastModifiedByInitials="WS" creationTime="2010-10-06T02:33:02.000Z" lastModifiedTime="2010-10-06T02:33:02.000Z" objectID="{E13C4904-E707-4980-83FD-C92F117109E1}{15}{B0}" alignment="left" quickStyleIndex="0">
<one:T><![CDATA[]]></one:T>
</one:OE>
</one:Title>
<one:Image format="jpg" originalPageNumber="0" lastModifiedTime="2010-10-06T05:26:59.000Z" objectID="{9C53EE63-B289-40A1-9CA9-2E45F2F833B0}{138}{B0}">
<one:Position x="18.0" y="104.400001525879" z="0"/>
<one:Size width="420.75" height="113.9999923706055"/>
<one:Data>
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsK
CwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQU
FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCACYAjEDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9MvH3
j7Qfhf4Sv/E3ia//ALM0OxCG4uvJkl2bnVF+SNWY5ZlHAPWszwL8YfCfxH1PUdM0PUZ21XTkjkut
O1CwuLC6iRxlH8m4jRyhBGGAI5HNcD+2z4d1XxX+zH4z0rRNMvNY1S4W18mysLd55pMXULHaiAsc
AEnA6A15j8V/2c/Gn/CG+LPGSazP4j8XatZabYXWm6JYtp6jSIXRri1jiMsjySOocsDJlxlFXnaV
B3b5trpfet/v38r/ADclorbu/wCFv83bzsfYFc94j8f6B4S1zw9o+rX/ANk1HxBcPa6bD5Mj+fKq
b2XcqkLhRnLECvjXxf8AC8+JtU+IFv4W0vxP8PvhbqiaXCkGneELpo5r+Ni8sh0rZHK0BjVI5GCA
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
l5/4Dv8A4UUUUe0YH//Z
</one:Data>
<one:OCRData lang="en-US">
<one:OCRText>
<![CDATA[Posted by:
Date: 2010-10-1 5:28:59
fSoKoLflW5jjJ5TR, ?kU? 1tI ?t!iFh扝 TH000TR?
t? TH0004AMI]3 tJ1, 4i1 7 4:fli1$4 o SoKOL
WflI扞Th *H領ttJ? Eflfl
TH000 ij*? SoKoLj4jfl, SoKoL*LJ5?j
1? R o]]>
</one:OCRText>
<one:OCRToken startPos="0" region="0" line="0" x="4.251968383789062" y="3.685039281845092" width="31.18110275268555" height="7.370078563690185"/>
<one:OCRToken startPos="7" region="0" line="0" x="39.40157318115234" y="3.685039281845092" width="13.32283401489258" height="8.78740119934082"/>
<one:OCRToken startPos="12" region="0" line="1" x="4.251968383789062" y="17.85826683044434" width="23.52755928039551" height="6.803150177001953"/>
<one:OCRToken startPos="18" region="0" line="1" x="32.031494140625" y="17.85826683044434" width="41.10236358642578" height="6.803150177001953"/>
<one:OCRToken startPos="28" region="0" line="1" x="77.66928863525391" y="17.85826683044434" width="31.46456718444824" height="6.803150177001953"/>
<one:OCRToken startPos="36" region="0" line="2" x="39.68503570556641" y="43.93700790405273" width="102.8976287841797" height="9.35433006286621"/>
<one:OCRToken startPos="37" region="0" line="2" x="39.68503570556641" y="43.93700790405273" width="102.8976287841797" height="9.35433006286621"/>
<one:OCRToken startPos="45" region="0" line="2" x="39.68503570556641" y="43.93700790405273" width="102.8976287841797" height="9.35433006286621"/>
<one:OCRToken startPos="48" region="0" line="2" x="39.68503570556641" y="43.93700790405273" width="102.8976287841797" height="9.35433006286621"/>
<one:OCRToken startPos="52" region="0" line="2" x="39.68503570556641" y="43.93700790405273" width="102.8976287841797" height="9.35433006286621"/>
<one:OCRToken startPos="54" region="0" line="2" x="147.968505859375" y="43.93700790405273" width="35.71653366088867" height="9.35433006286621"/>
<one:OCRToken startPos="55" region="0" line="2" x="147.968505859375" y="43.93700790405273" width="35.71653366088867" height="9.35433006286621"/>
<one:OCRToken startPos="57" region="0" line="2" x="147.968505859375" y="43.93700790405273" width="35.71653366088867" height="9.35433006286621"/>
<one:OCRToken startPos="59" region="0" line="2" x="185.1023712158203" y="43.93700790405273" width="34.86614227294922" height="9.35433006286621"/>
<one:OCRToken startPos="63" region="0" line="2" x="232.4409332275391" y="43.93700790405273" width="50.45669174194336" height="9.35433006286621"/>
<one:OCRToken startPos="65" region="0" line="2" x="232.4409332275391" y="43.93700790405273" width="50.45669174194336" height="9.35433006286621"/>
<one:OCRToken startPos="69" region="0" line="2" x="232.4409332275391" y="43.93700790405273" width="50.45669174194336" height="9.35433006286621"/>
<one:OCRToken startPos="71" region="0" line="2" x="284.0314636230468" y="43.93700790405273" width="55.84252166748047" height="9.35433006286621"/>
<one:OCRToken startPos="76" region="0" line="2" x="284.0314636230468" y="43.93700790405273" width="55.84252166748047" height="9.35433006286621"/>
<one:OCRToken startPos="80" region="0" line="3" x="120.4724426269531" y="57.54330444335937" width="21.54330825805664" height="9.070865631103515"/>
<one:OCRToken startPos="81" region="0" line="3" x="120.4724426269531" y="57.54330444335937" width="21.54330825805664" height="9.070865631103515"/>
<one:OCRToken startPos="83" region="0" line="3" x="147.968505859375" y="57.25984573364258" width="89.57480621337891" height="9.637796401977539"/>
<one:OCRToken startPos="89" region="0" line="3" x="147.968505859375" y="57.25984573364258" width="89.57480621337891" height="9.637796401977539"/>
<one:OCRToken startPos="91" region="0" line="3" x="147.968505859375" y="57.25984573364258" width="89.57480621337891" height="9.637796401977539"/>
<one:OCRToken startPos="95" region="0" line="3" x="283.4645690917969" y="57.54330444335937" width="11.9055118560791" height="9.070865631103515"/>
<one:OCRToken startPos="98" region="0" line="3" x="283.4645690917969" y="57.54330444335937" width="11.9055118560791" height="9.070865631103515"/>
<one:OCRToken startPos="100" region="0" line="3" x="301.3228454589844" y="57.54330444335937" width="17.57480239868164" height="9.35433006286621"/>
<one:OCRToken startPos="101" region="0" line="3" x="301.3228454589844" y="57.54330444335937" width="17.57480239868164" height="9.35433006286621"/>
<one:OCRToken startPos="104" region="0" line="3" x="320.031494140625" y="58.39370346069336" width="6.803150177001953" height="8.22047233581543"/>
<one:OCRToken startPos="106" region="0" line="3" x="328.2519836425781" y="57.54330444335937" width="44.50393676757812" height="9.070865631103515"/>
<one:OCRToken startPos="108" region="0" line="3" x="328.2519836425781" y="57.54330444335937" width="44.50393676757812" height="9.070865631103515"/>
<one:OCRToken startPos="110" region="0" line="3" x="328.2519836425781" y="57.54330444335937" width="44.50393676757812" height="9.070865631103515"/>
<one:OCRToken startPos="112" region="0" line="3" x="328.2519836425781" y="57.54330444335937" width="44.50393676757812" height="9.070865631103515"/>
<one:OCRToken startPos="115" region="0" line="3" x="374.7401428222656" y="61.22834777832031" width="3.685039281845092" height="3.401575088500976"/>
<one:OCRToken startPos="117" region="0" line="3" x="382.9606323242187" y="58.11023330688476" width="25.22834587097168" height="7.08661413192749"/>
<one:OCRToken startPos="123" region="0" line="4" x="3.401575088500976" y="70.86614227294922" width="66.61417388916015" height="9.35433006286621"/>
<one:OCRToken startPos="127" region="0" line="4" x="3.401575088500976" y="70.86614227294922" width="66.61417388916015" height="9.35433006286621"/>
<one:OCRToken startPos="128" region="0" line="4" x="3.401575088500976" y="70.86614227294922" width="66.61417388916015" height="9.35433006286621"/>
<one:OCRToken startPos="131" region="0" line="4" x="75.68503570556641" y="70.86614227294922" width="66.33070373535156" height="9.35433006286621"/>
<one:OCRToken startPos="133" region="0" line="4" x="75.68503570556641" y="70.86614227294922" width="66.33070373535156" height="9.35433006286621"/>
<one:OCRToken startPos="134" region="0" line="4" x="75.68503570556641" y="70.86614227294922" width="66.33070373535156" height="9.35433006286621"/>
<one:OCRToken startPos="137" region="0" line="4" x="75.68503570556641" y="70.86614227294922" width="66.33070373535156" height="9.35433006286621"/>
<one:OCRToken startPos="140" region="0" line="4" x="316.346435546875" y="70.86614227294922" width="82.77165985107421" height="9.35433006286621"/>
<one:OCRToken startPos="143" region="0" line="4" x="316.346435546875" y="70.86614227294922" width="82.77165985107421" height="9.35433006286621"/>
<one:OCRToken startPos="146" region="0" line="5" x="121.3228302001953" y="84.47243499755859" width="35.43307113647461" height="9.070865631103515"/>
<one:OCRToken startPos="152" region="0" line="5" x="170.0787506103516" y="84.47243499755859" width="35.43307113647461" height="9.070865631103515"/>
<one:OCRToken startPos="155" region="0" line="5" x="170.0787506103516" y="84.47243499755859" width="35.43307113647461" height="9.070865631103515"/>
<one:OCRToken startPos="157" region="0" line="5" x="220.2519683837891" y="84.47243499755859" width="82.77165985107421" height="9.070865631103515"/>
<one:OCRToken startPos="167" region="0" line="5" x="220.2519683837891" y="84.47243499755859" width="82.77165985107421" height="9.070865631103515"/>
<one:OCRToken startPos="169" region="0" line="5" x="309.5433044433594" y="84.47243499755859" width="105.1653442382812" height="9.070865631103515"/>
<one:OCRToken startPos="175" region="0" line="5" x="309.5433044433594" y="84.47243499755859" width="105.1653442382812" height="9.070865631103515"/>
<one:OCRToken startPos="176" region="0" line="5" x="309.5433044433594" y="84.47243499755859" width="105.1653442382812" height="9.070865631103515"/>
<one:OCRToken startPos="178" region="0" line="5" x="309.5433044433594" y="84.47243499755859" width="105.1653442382812" height="9.070865631103515"/>
<one:OCRToken startPos="179" region="0" line="5" x="309.5433044433594" y="84.47243499755859" width="105.1653442382812" height="9.070865631103515"/>
<one:OCRToken startPos="181" region="0" line="6" x="104.031494140625" y="97.79527282714844" width="10.77165412902832" height="9.35433006286621"/>
<one:OCRToken startPos="182" region="0" line="6" x="104.031494140625" y="97.79527282714844" width="10.77165412902832" height="9.35433006286621"/>
<one:OCRToken startPos="184" region="0" line="6" x="123.5905456542969" y="97.79527282714844" width="13.60630035400391" height="9.637796401977539"/>
<one:OCRToken startPos="187" region="0" line="6" x="304.4409484863281" y="101.7637786865234" width="3.118110418319702" height="3.118110418319702"/>
</one:OCRData>
</one:Image>
</one:Page>
2.5、Onenote的OCR机制是这样的:当我们插入一幅图片时,Onenote会自动进行OCR处理,并将OCR后的结果以XML的形式写入到页面结构中。因此我们的处理思路是,编程向Onenote中插入一幅图片,然后提取OCR后的结果。
即【OCRText】标签中的内容:
<![CDATA[ew features in One Note 14
Gather, organize, and search
. Improved organization inside sections
O Multi-level subpages
o Collapsing subpages
O Drag-dropto make a subpage
o In-place New Page button
. Updated Search that抯 faster than navigating
. Improved hyperlinkingof notes, wiki links
. Outlook and lE integration improvements
O Section picker when sendingtoOneNote
o Notes on Outlook tasks
. QuIck Styles for making headings
. Linked note-taking on Web pages and documents
. Math support
. Dock to Desktop mode
Sharing and universal access
. Access from everywhere
O Share on the Web
O Browser access
O OneNote Mobile- syncs with the Web
. Sharing enhancements:
O Unread highlighting
O Author marks
O Recent Edits
O Find by Author
o VersioningandRecycleBin
O Faster sync with SharePoint
. Improved OneNoteMobile for mobile devices
O Sync overtheair
O Sync selected notebooks or sections]]>
</one:OCRText>
2.6、下面我们来动手一步步处理,关于界面搭建的XAML不再赘述,感兴趣的朋友请自行下载源代码,主要关注下业务代码。
图片在Onenote XML中是以Base64位编码格式存在的,故首先对插入的图片进行Base64编码:
FileInfo file = new FileInfo(v_strImgPath);
using (MemoryStream ms = new MemoryStream())
{
Bitmap bp = new Bitmap(v_strImgPath);
switch (file.Extension.ToLower())
{
case ".jpg":
bp.Save(ms, ImageFormat.Jpeg);
break;
case ".jpeg":
bp.Save(ms, ImageFormat.Jpeg);
break;
case ".gif":
bp.Save(ms, ImageFormat.Gif);
break;
case ".bmp":
bp.Save(ms, ImageFormat.Bmp);
break;
case ".tiff":
bp.Save(ms, ImageFormat.Tiff);
break;
case ".png":
bp.Save(ms, ImageFormat.Png);
break;
case ".emf":
bp.Save(ms, ImageFormat.Emf);
break;
default:
this.labMsg.Content = "不支持的图片格式。";
return;
}
byte[] buffer = ms.GetBuffer();
string _Base64 = Convert.ToBase64String(buffer);
2.7、构建插入图片后的Onenote XML代码:
string notebookXml;
onenoteApp.GetHierarchy(null, Microsoft.Office.Interop.OneNote.HierarchyScope.hsPages, out notebookXml);
var doc = XDocument.Parse(notebookXml);
var ns = doc.Root.Name.Namespace;
var pageNode = doc.Descendants(ns + "Page").FirstOrDefault();
var existingPageId = pageNode.Attribute("ID").Value;
2.8、这里有一处小细节,就是Onenote XML中图片格式只支持如下几种:auto|png|emf|jpg,故需要将图片格式做一下处理:
switch (ImgExtension)
{
case "jpg":
ImgExtension = "jpg";
break;
case "png":
ImgExtension = "png";
break;
case "emf":
ImgExtension = "emf";
break;
default:
ImgExtension = "auto";
break;
}
2.9、下面这段是关键代码了,使用Linq to XML构造出插入图片后的Onenote XML:
<one:Image format="" originalPageNumber="0" lastModifiedTime="" objectID="">
<one:Position x="" y="" z=""/>
<one:Size width="" height=""/>
<one:Data>Base64</one:Data>
//以下标签由Onenote 2010自动生成,不要在程序中处理,目标是获取OCRText中的内容。
<one:OCRData lang="en-US">
<one:OCRText>
<![CDATA[ OCR后的文字 ]]>
</one:OCRText>
<one:OCRToken startPos="0" region="0" line="0" x="4.251968383789062" y="3.685039281845092" width="31.18110275268555" height="7.370078563690185"/>
<one:OCRToken startPos="7" region="0" line="0" x="39.40157318115234" y="3.685039281845092" width="13.32283401489258" height="8.78740119934082"/>
<one:OCRToken startPos="12" region="0" line="1" x="4.251968383789062" y="17.85826683044434" width="23.52755928039551" height="6.803150177001953"/>
<one:OCRToken startPos="18" region="0" line="1" x="32.031494140625" y="17.85826683044434" width="41.10236358642578" height="6.803150177001953"/>
<one:OCRToken startPos="28" region="0" line="1" x="77.66928863525391" y="17.85826683044434" width="31.46456718444824" height="6.803150177001953"/>
................
</one:Image>
*/
/*ObjectID格式
The representation of an object to be used for identification of objects on a page. Not unique through OneNote, but unique on the page and the hierarchy.
<xsd:simpleType name="ObjectID" ">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}\{[0-9]+\}\{[A-Z][0-9]+\}" />
</xsd:restriction>
</xsd:simpleType>
*/
new XElement(ns + "Outline",
new XElement(ns + "OEChildren",
new XElement(ns + "OE",
new XElement(ns + "Image",
new XAttribute("format", ImgExtension), new XAttribute("originalPageNumber", ""),
new XElement(ns + "Position",
new XAttribute("x", ""), new XAttribute("y", ""), new XAttribute("z", "")),
new XElement(ns + "Size",
new XAttribute("width", bp.Width.ToString()), new XAttribute("height", bp.Height.ToString())),
new XElement(ns + "Data", _Base64)))))));
page.Root.SetAttributeValue("ID", existingPageId);
onenoteApp.UpdatePageContent(page.ToString(), DateTime.MinValue);
2.10、线程休眠几秒钟,等待OCR完成,Onenote OCR根据图片大小需要消耗一些时间:
//线程休眠时间,单位毫秒,若图片很大,则延长休眠时间,保证Onenote OCR完毕 System.Threading.Thread.Sleep(Int32.Parse(System.Configuration.ConfigurationManager.AppSettings["WaitTIme"]));
2.11、为了便于提取OCR后的结果,将构造好的Onenote XML代码写入一个临时的XML文件:
onenoteApp.GetPageContent(existingPageId, out pageXml, Microsoft.Office.Interop.OneNote.PageInfo.piAll);
//获取OCR后的内容
FileStream tmpXml = new FileStream(System.Configuration.ConfigurationManager.AppSettings["tmpPath"] + @"\tmp.xml", FileMode.Create, FileAccess.ReadWrite);
StreamWriter sw = new StreamWriter(tmpXml);
sw.Write(pageXml);
sw.Flush();
sw.Close();
tmpXml.Close();
2.12、使用Linq to XML和XPath表达式提取OCR后的结果:
XmlReader reader = XmlReader.Create(tmpOnenote);
XElement rdlc = XElement.Load(reader);
XmlNameTable nameTable = reader.NameTable;
XmlNamespaceManager mgr = new XmlNamespaceManager(nameTable);
mgr.AddNamespace("one", ns.ToString());
StringReader sr = new StringReader(pageXml);
XElement onenote = XElement.Load(sr);
var xml = from o in onenote.XPathSelectElements("//one:Image", mgr)
select o.XPathSelectElement("//one:OCRText", mgr).Value;
this.txtOCRed.Text = xml.First().ToString();
2.13、释放占用的资源:
sr.Close(); reader.Close(); tmpOnenote.Close();
2.14、最后将OCR后的结果写入到输出文件中:
StreamWriter sw = new StreamWriter(fs);
sw.Write(this.txtOCRed.Text);
sw.Flush();
sw.Close();
fs.Close();
this.labMsg.Content = "OCR成功。";
由于我安装的是Onenote 2010 x64英文版,未找到中文语言包,故先测试下英文OCR。
2.15、本地图片测试结果:
2.16、网络图片测试结果:
网络图片是先下载到本地,后面步骤和本地图片一样。
小结
此方法的优点是效率很高,可扩展性强,只要改改配置文件、Linq to XML代码就可以完成很多附加工作。
缺点是,要求客户端必须要安装Onenote,且至少要有一个打开的Page,OCR时无法判断哪一个图片是正在OCR的,若连续操作则显示结果混乱。
此外,我没有找到编程建立Onenote文档的方法,以及对Onenote XML架构了解的还不够多,对一些元素不知道如何编程生成,如ObjectID等。
综上所述,Onenote 2010的OCR水平还是很高的,和Tesseract相比,OCR的准确率与效率均提高了不止一个档次,但是鉴于Onenote 2010 API十分简陋,远不及Word、Excel等操作方便,且官方文档对于Onenote 2010 XML架构的介绍还不是很详细,缺少示例。希望Office 15、Onenote 2014能有所改进吧。关于OCR的介绍到此告一段落,欢迎感兴趣的朋友继续讨论。
浅谈OCR之Onenote 2010的更多相关文章
- 浅谈OCR之Tesseract
光 学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程.OCR技术非常专业,一般多是印刷.打印 ...
- Java菜鸟浅谈OCR
什么是OCR? 粗暴点说就是图片文本识别!正规点的说法就是:(Optical Character Recognition,光学电子识别) 最近公司开展新项目,考虑到实名认证这方面,然后还要上传身份证正 ...
- 小试Office OneNote 2010的图片文字识别功能(OCR)
原文:小试Office OneNote 2010的图片文字识别功能(OCR) 自Office 2003以来,OneNote就成为了我电脑中必不可少的软件,它集各种创新功能于一身,可方便的记录下各种类型 ...
- 浅谈Excel开发:十一 针对64位Excel的插件的开发和部署
自Office 2010版本开始有了32位和64位之分,对Excel来说,32位的Excel和64位的Excel在性能上的主要区别是64位的Excel能够处理2G及2G以上的大数据集. 随着64位操作 ...
- 浅谈五大Python Web框架
转载:http://feilong.me/2011/01/talk-about-Python-web-framework 说到Web Framework,Ruby的世界Rails一统江湖,而Pytho ...
- 浅谈Python时间模块
浅谈Python时间模块 今天简单总结了一下Python处理时间和日期方面的模块,主要就是datetime.time.calendar三个模块的使用.希望这篇文章对于学习Python的朋友们有所帮助 ...
- 转:浅谈CSS在前端优化中一些值得注意的关键点
前端优化工作中要考虑的元素多种多样,而合理地使用CSS脚本可以在很大程度上优化页面的加载性能,以下我们就来浅谈CSS在前端优化中一些值得注意的关键点: 当谈到Web的“高性能”时,很多人想到的是页面加 ...
- [转]浅谈https\ssl\数字证书
浅谈https\ssl\数字证书 http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html 全球可信的 ...
- [转]浅谈Python web框架
说到web framework,Ruby的世界Rails一统江湖,而Python则是一个百花齐放的世界,各种micro-framework.framework不可胜数,不完全列表见:http://wi ...
随机推荐
- 基于visual Studio2013解决面试题之1002公共子串
题目
- EasyUI - 操作 Tree 控件
效果: HTML代码: 使用了模板页 <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHo ...
- .net生成Excel,并下载
生成Excel的方式有很多种,这里记录两个最简单的: 1.将数据保存为html,然后输出到客户端,保存为Excel文件: 2.通过\t\n生成字符串,然后输出到客户端,保存为Excel. 以上两者的原 ...
- 移动端网页JS框架-手机触摸事件框架,日历框架带滑动效果
swiper.js,hammer.js,mobiscroll http://www.mobiscroll.com/ 日历
- 免费APP在线測试工具以及其用法
免费APP漏洞安全检測工具:http://safe.ijiami.cn/ 漏洞分析是爱加密推出免费 APP 漏洞分析平台,服务包含一键对APK 进行签名数据信息採集.内部配置信息採集.市场渠道相关信息 ...
- Codeforces 39E What Has Dirichlet Got to Do with That? 游戏+内存搜索
主题链接:点击打开链接 意甲冠军: 特定 a一箱 b球 不变n (球和箱子都不尽相同,样的物品) 设 way = 把b个球放到a个箱子中的方法数, 若way >= n则游戏结束 有2个人玩游戏. ...
- NFS服务器端配置
服务器端配置1 创建共享目录# mkdir /home/share# chown nobody.nogroup /home/share2 创建或修改/etc/exports 配置文件这个文件的内容非常 ...
- 配置QtCreator+CDB远程调试环境(要设置_NT_SYMBOL_PATH和QT_PLUGIN_PATH和Path)
相关环境信息:开发机Win7 x64.远程机器WinXP.调试器是CDB.Qt版本5.2.1 一.部署远程机器环境 我这里用的是虚拟机(Windows XP),根据你要调试的程序选择安装不同架构的Wi ...
- 如果用float实现居中
今天发现自己做的一个项目中有个图片切换的下面的按钮不是固定个数,程序那边根据循环实现放几个切换的按钮,但是按钮相对于整体的要居中,刚开始想着用display:inline-block;实现,但是ie6 ...
- uva 357 Let Me Count The Ways(01背包)
题目连接:357 - Let Me Count The Ways 题目大意:有5种硬币, 面值分别为1.5.10.25.50,现在给出金额,问可以用多少种方式组成该面值. 解题思路:和uva674是一 ...