光学字符识别(OCR)是一种允许计算机通过扫描图像来识别文本的技术。它不仅能够将图像中的文本转换为可编辑和可重用的文本字符,而且还能够处理标点符号、空格和行尾等。OCR技术通常使用模式识别这种人工智能形式来识别页面上的单个文本字符。
文档成像是将纸质文档扫描并转换为数字图像的过程,这些图像可以存储在CD、DVD或其他磁性存储介质上。使用Microsoft Office文档成像,可以扫描纸质文档并将其转换为数字图像,然后保存在计算机硬盘、网络服务器、CD或DVD上。此外,Microsoft Office文档成像还允许执行OCR操作,无论是在扫描文档时,还是在处理TIFF或MDI文件时。
要运行使用OCR的应用程序,必须在计算机上安装Office OCR组件。这意味着,如果没有Office OCR组件,应用程序将无法工作。
它是Office附带的免费组件,可以在代码中免费使用它。由于Microsoft提供了许多示例代码来说明如何使用这个组件,因此它非常容易使用。
using System.Collections;
using System.IO;
using System.Drawing.Imaging;
需要添加引用的COM对象名称是“Microsoft OfficeDocument Imaging 12.0 Type Library”。默认情况下,Office 2007不会安装它。需要确保使用Office 2007安装程序添加它。只需运行安装程序,点击“继续”按钮,并选择“添加或删除功能”,确保成像组件已安装。
OCR引擎始终默认为用户的区域设置提供LangID参数,除非在调用OCR方法时明确指定语言;它不会保留之前使用的设置。在多语言环境中,最好在每次调用OCR方法时明确指定LangID参数。
使用C#。从Visual Studio的解决方案资源管理器,右键点击“引用”,然后选择COM选项卡,接着选择“Microsoft OfficeDocument Imaging 12.0 Type Library”。
public void CheckFileType(string directoryPath)
{
IEnumerator files = Directory.GetFiles(directoryPath).GetEnumerator();
while (files.MoveNext())
{
string fileExtension = Path.GetExtension(Convert.ToString(files.Current));
string fileName = Convert.ToString(files.Current).Replace(fileExtension, string.Empty);
if (fileExtension == ".jpg" || fileExtension == ".JPG")
{
try
{
MODI.Document md = new MODI.Document();
md.Create(Convert.ToString(files.Current));
md.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true);
MODI.Image image = (MODI.Image)md.Images[0];
FileStream createFile = new FileStream(fileName + ".txt", FileMode.CreateNew);
StreamWriter writeFile = new StreamWriter(createFile);
writeFile.Write(image.Layout.Text);
writeFile.Close();
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, "OCR Exception", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
为Office OCR制作了一个大型示例应用程序,将很快发布它。
许多人使用OCR进行网络爬虫以获取数据。