星期六, 十二月 05, 2009

OCR

這個範例使用 Microsoft Office 內的工具 Microsoft Office Document Imaging,他有 OCR 功能。所以想應用在大量掃描文件,並且撰寫批次轉成文件檔的可以參考看看。

首先一定是要具備 Windows 系統和安裝 Microsoft Office 的工具Microsoft Office Document Imaging,這樣 PHP 就可以透過 COM 操作。

下面的程式碼範例是簡易的讀取一個 TIF (Tagged Image File Format) 檔案,並且轉成文字檔。
<?php
$MODIDocument 
= new COM("MODI.Document"nullCP_UTF8);
$MODIDocument->Create("modi.tif");
// tif 格式 有分頁概念,可以使用 count($MODIDocument->Images) 取得頁數。
// 範例程式程式僅使用第一頁
$MODIDocumentImage $MODIDocument->Images[0];
// 使用繁體中文
$MODIDocumentImage->OCR(1028falsefalse);
$MODIDocumentWords $MODIDocumentImage->Layout->Words;
// 將辨識出的字元將之串成一個字串
foreach ($MODIDocumentWords as $WordItem) {
       
$strResult .= $WordItem->Text;
}
echo 
$strResult;
$MODIDocument->Close(false);
?>


至於Microsoft Office Document Imaging提供多少功能,可以參考這裡。

程式碼範例中,在 new COM 的第三個參數會影響輸出的文字編碼,而我在程式碼範例設成 CP_UTF8,那麼在最後 echo $strResult的字串會是 UTF-8 編碼。若沒設這個參數,那麼就會使用系統的預設編碼,如繁體中文版的作業系統就會輸出 CP950編碼方式。
而在掃描的動作中 $MODIDocumentImage->OCR(1028, false, false); 參數 1028 為繁體中文的語系常數值,語系的參數可以參閱Microsoft Office Document Imaging Enumerated Constants => MiLANGUAGES 。簡體中文的就找簡體中文的常數值。

部落格不能上傳 .TIF 檔格式,所以我上傳轉 PNG 後的 TIF 畫面。






上傳的檔案因為部落格的緣故,圖片顯示有點"走鐘"了。只要點進去就可以看到原始圖。若是下載範例圖檔,請將之在轉為 TIF 格式。


輸出的結果:
《痞子英雄》是2009年一齣台灣電視劇,為普拉嘉國際意像製作的第一部連續劇,由周渝民、趙又廷、陳意涵、張鈞肓等人主演。言亥劇由曾榮獲金鐘獎最佳導演的蔡岳動執導,全劇主要以高雄市為取景地點。本劇是參考拉法葉軍購弊案改編。


看到結果~嗯~普普啦,還是有錯字,我最喜歡的公視偶像劇『我在墾丁天氣晴』和『痞子英雄』的女主角張鈞甯,竟然變成了張鈞肓 ><

0 意見:

張貼意見

我的意見