2011-03-05 64 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