2011-03-05 76 views
0

我需要OCR扫描文档的特定区域,并使用MODI(Microsoft的Document Imaging COM对象)。如何OCR MODI.Document的特定区域?

我的代码目前OCR的整个页面(相当准确!),但我想定位在页面的文本总是静态(订单号)的特定区域。我怎样才能做到这一点?

这里是我的网页代码:

MODI.Document md = new MODI.Document(); 

md.Create("c:\\temp\\mpk.tiff"); 

md.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true); 
MODI.Image image = (MODI.Image)md.Images[0]; 

FileStream createFile = new FileStream("c:\\temp\\mpk.txt", FileMode.CreateNew); 

StreamWriter writeFile = new StreamWriter(createFile); 
writeFile.Write(image.Layout.Text); 
writeFile.Close(); 

md.Close(); 

我可以采用某种指定图像的区域?

任何帮助将不胜感激!

回答

2

没有办法裁剪我用MODI对象模型看到的图像。另一种方法是提供一个包含您想要转换的订单号的图像。您可以使用System.Drawing命名空间中的类从原始创建它。请检查this MSDN page以获取示例代码。

+0

汉斯,这是一个好主意。似乎我应该能够在内存中裁剪图像,并以某种方式传递给MODI.document(而不是保存/打开文件)。你知道我能否以某种方式将内存中的裁剪图像分配给MODI.Image? – 2011-03-05 07:31:56

+0

是的,你可以修改Images属性。我不太了解Images.Add()方法,祝你好运。它在Windows上实际上并不更快,文件系统缓存使内存和磁盘之间的差异消失。 – 2011-03-05 07:55:22

+0

感谢汉斯,速度可能不是太大的问题,所以无论如何可能会好起来。不知道你是否知道这一点,但你知道我是否可以OCR非英语单词吗? (也就是ABC123的订单号) – 2011-03-05 20:50:19