跳轉到主要內容
C# 範例僅適用於 Windows 版 FRE。
ABBYY FineReader Engine 的 Intelligent Character Recognition (ICR) 技術可讓您辨識手寫與仿印刷體文字。
  • 並非所有辨識語言都支援手寫或仿印刷體文字辨識。請參閱預先定義語言清單
  • 特殊符號 (例如 * ^ ™ © ® № § ¡ ¿ ‰) 無法辨識。
在版面分析期間,系統可找出包含手寫與仿印刷體文字的區塊,並將其標記為使用手寫文字類型進行辨識。若要偵測並辨識手寫或仿印刷體文字,請將 PageAnalysisParamsDetectHandwritten 屬性設為 TRUE。請將 SpeedQualityMode 屬性設為 SQM_Accurate,因為只有在精確分析模式下才能偵測手寫文字。 手寫與仿印刷體文字類型都使用相同的 TextTypeEnum::TT_Handwritten 常數指定。建立文字區塊時,會將 ITextBlock::RecognizerParams 物件的 TextTypes 屬性設為 TT_Handwritten。 在辨識期間,如果辨識語言支援手寫文字,文字將辨識為手寫;如果僅支援仿印刷體文字,則將辨識為仿印刷體。
// 全域 ABBYY FineReader Engine 物件
FREngine.IEngine engine;
...
// 開啟影像檔
...
FREngine.IFRDocument frdoc;
// 建立 DocumentProcessingParams 並設定參數
FREngine.IDocumentProcessingParams processingParams = engine.CreateDocumentProcessingParams();
processingParams.PageProcessingParams.PageAnalysisParams.SpeedQualityMode = SQM_Accurate;
processingParams.PageProcessingParams.PageAnalysisParams.DetectHandwritten = true;
// 設定文字類型,以同時辨識一般文字與手寫文字
processingParams.PageProcessingParams.RecognizerParams.TextTypes = TT_Normal | TT_Handwritten;
// 使用這些參數進行處理
frDoc.Process( processingParams );
...

手動標記區塊

或者,您也可以透過 ITextBlock::RecognizerParams 屬性,手動為包含手寫文字的區塊設定辨識參數:
  1. RecognizerParams 物件的 TextTypes 屬性設為 TT_Handwritten。
  2. [選用] 仿印刷體字母通常可能會被框線、方框等標記包圍。在這種情況下,請在 RecognizerParams 物件的 FieldMarkingType 屬性中,設定字母周圍標記的類型。如果每個字母都寫在不同的儲存格中,請使用 CellsCount 屬性,設定辨識區塊中的字元儲存格數量。
    // 全域 ABBYY FineReader Engine 物件
    FREngine.IEngine engine;
    ...
    // 開啟影像檔案
    ...
    // 從頁面取得 Layout 物件
    FREngine.ILayout layout = frPage.Layout;
    // 設定區塊區域
    FREngine.IRegion region = engine.CreateRegion();
    region.AddRect( 491, 314, 2268, 404 );
    // 建立新區塊
    FREngine.IBlock newBlock = layout.Blocks.AddNew( FREngine.BlockTypeEnum.BT_Text, region, 0 );
    FREngine.ITextBlock textBlock = newBlock.GetAsTextBlock();
    // 指定文字類型
    textBlock.RecognizerParams.TextTypes = (int)FREngine.TextTypeEnum.TT_Handwritten;
    // 指定字母周圍的標記類型
    textBlock.RecognizerParams.FieldMarkingType = FREngine.FieldMarkingTypeEnum.FMT_SimpleText;
    // 辨識與匯出
    ...
    

    另請參閱

    RecognizerParams 預先定義語言清單