フレームを表示

L_RakeRemoveBitmap

フレームを表示

#include "l_bitmap.h"

L_LTIMGCOR_API L_INT EXT_FUNCTION L_RakeRemoveBitmap(pBitmap、bAuto、pComb、pDstRect、nRectCount、pCallback、pUserData、uFlags)

pBITMAPHANDLE pBitmap;

/* ビットマップへのポインター*/

L_BOOL bAuto;

/* オートメーションフラグ*/

pRAKEREMOVE pComb;

/* RAKEREMOVE構造体へのポインター*/

RECT * pDstRect;

/* レーキ領域長方形へのポインター*/

L_INT nRectCount;

/* 多くの長方形*/

RAKEREMOVECALLBACK pCallback;

/* オプションのコールバック関数*/

L_VOID * pUserData;

/* コールバックのためのより多くのパラメータへのポインター*/

L_UINT32 uFlags;

/* フラグ*/

1-ビット白黒のイメージから、孤立したデータレーキを削除します。

パラメーター

説明

pBitmap

レーキ除去を実行するビットマップを参照文に引用するビットマップハンドルへのポインター。

bAuto

レーキ除去を自動化するべきかどうかについて示すフラグ。設定可能な値は、以下の通りです。

 

意味

 

True

レーキ除去を自動化します。

 

False

レーキ除去を自動化しません。

pComb

LEADTOOLSがレーキ除去操作を実行するために使うRAKEREMOVE構造体へのポインター。

pDstRect

レーキがimageである領域を指定しているWindows RECT構造体の配列へのポインター。NULLが渡されるならば、関数はimage全体でレーキを探します。

nRectCount

長方形は、どちらが中でレーキの数にimageに等しいか、または、もっと、1つの長方形が1つ以上のレーキを格納するかどうか指定しましたの数NULLがpDstRectパラメーターのために渡されるならば、このパラメーターは0として渡されなければなりません。

pCallback

追加の処理のためのオプションのコールバック関数。

 

コールバック関数を提供しないならば、このパラメーターの値としてNULLを使います。

 

コールバック関数を提供するならば、このパラメーターの値として関数ポインターを使用します。

 

コールバック関数は、RAKEREMOVECALLBACK関数で説明される関数のプロトタイプに準拠しなければなりません。

pUserData

コールバック関数が必要とする一つ以上の追加のパラメータを渡すために使用することができるボイドポインター。

 

この機能を使用するには、値を変数に割り当てるか、必要な数のフィールドを格納する構造体を作成します。その後、このパラメーターで、変数または構造体のアドレスを渡し、L_VOID *に呼び出します。

 

独自のpUserDataパラメーターでアドレスを受け取るコールバック関数は、適切なデータタイプのポインターにキャストし変数や構造体にアクセスします。

 

これ以上パラメーターが必要ない場合は、このパラメーターでNULLを渡すこともできます。

uFlags

今後使うため確保されます。0でなければなりません。

戻り値

SUCCESS

関数は成功しました。

<1

エラーが発生しました。リターンコードを参照してください

コメント

レーキは、垂直分割行ポインティングをそれに上へ関連づける行です。レーキは、個々に塗りつぶされて、分割縦線で作成されるスペースで区切られるデータ(数字または文字)を格納するのに用いられます。

一般的なレーキは、以下のように見えます:

image\L_RakeRemoveBitmap.gif

(ドキュメント)この関数は、スキャンされたテキストドキュメントからデータレーキを削除します。レーキがテキストを通して渡すならば、pRakeパラメーターはテキストを削除するか、保存するように構成されることができます。この関数の動作は、そのコールバックを用いてさらに修正されることができます。

リージョンが選択されるならば、選択したリージョンだけは変更されます。リージョンが選択されないならば、全部のimageは処理されます。

内部またはテーブルの一部であるレーキ構造体のために、ユーザーはリージョン(望ましくは長方形のリージョン)を通してレーキ構造体とレーキ構造体only-を選択することができて、そのリージョンの上で関数を呼び出すことができます。

この関数は、1-ビット白黒のイメージに関してだけ、機能します。

この関数は、32ビットグレースケールイメージをサポートしません。32ビットグレースケールimageがこの関数に渡されるならば、それはエラーコードERROR_GRAY32_UNSUPPORTEDを返します。

この関数は、符合付きデータイメージをサポートしません。符合付きデータイメージがこの関数に渡されるならば、それはエラーコードERROR_SIGNED_DATA_NOT_SUPPORTEDを返します。

必須のDLLとライブラリ

LTIMGCOR

ツールキットバージョンに基づいた正確なDLLとライブラリのリストについては、「アプリケーションとともに配布するファイル」を参照してください

プラットホーム

Win32 x 64

参照

関数:

RAKEREMOVECALLBACK, L_LineRemoveBitmap, L_SmoothBitmap, L_BorderRemoveBitmap, L_InvertedTextBitmap, L_DotRemoveBitmap, L_HolePunchRemoveBitmap, L_BlankPageDetectorBitmap, L_AutoBinarizeBitmap, L_DynamicBinaryBitmap, L_AutoBinaryBitmap

トピック:

ラスター画像は機能します:1ビット画像のクリーンアップ

 

1ビット画像のクリーンアップ

サンプル

このサンプルはビットマップをロードして、それの上で特定の長方形領域でレーキ除去を適用します、そして、コールバック関数は見つけられる各々のくしのlengthを印刷します

#define MAKE_IMAGE_PATH(pFileName) TEXT("C:\\Users\\Public\\Documents\\LEADTOOLS Images\\")pFileName


L_INT EXT_CALLBACK RakeRemoveExampleCB( L_HRGN     hRgn, L_INT    Length, L_VOID* pUserData)
{
   UNREFERENCED_PARAMETER(hRgn);
   UNREFERENCED_PARAMETER(pUserData);

   L_TCHAR szMsg[200];

   wsprintf(szMsg, TEXT("Length of Rake =  %d"), Length);

   MessageBox(NULL, szMsg, TEXT(""), MB_OK);

   return SUCCESS_NOREMOVE;
}

L_LTIMGTEX_API L_INT RakeRemoveExample(L_VOID)
{
   L_INT nRet;
   BITMAPHANDLE LeadBitmap; /*Bitmap handle to hold the loaded image*/
   RECT rect[2] ;      /*Rectangle to specify area on Bitmap*/        
   RAKEREMOVE Rake;        /*Rake structure*/

   /* Load the bitmap, keeping the bits per pixel of the file */
   nRet = L_LoadBitmap (MAKE_IMAGE_PATH(TEXT("Forms\\Forms to be Recognized\\OCR\\FCC-107_OCR_Filled.tif")), 
      &LeadBitmap, sizeof(BITMAPHANDLE), 0,
      ORDER_BGR, NULL, NULL);
   if(nRet != SUCCESS)
      return nRet;

   //Specify rectangle parameters 
  rect[0].left = 30;
  rect[0].top = 30;
  rect[0].bottom = 60;
  rect[0].right = 60;
  rect[1].left = 70;
  rect[1].top = 70;
  rect[1].bottom = 100;
  rect[1].right = 100;
   
  //specifying comb structure parameters
  Rake.nMaxMidteethLength = 50;
  Rake.nMaxSideteethLength = 60;
  Rake.nMaxWallPercent = 25;
  Rake.nMaxWidth = 3;
  Rake.nMinLength = 50;
  Rake.nMinWallHeight = 10;
  Rake.nTeethSpacing = 5;
  Rake.nVariance = 1;
  Rake.nGaps = 1;

   //Apply the RakeRemove function
   nRet = L_RakeRemoveBitmap(&LeadBitmap,TRUE, &Rake,rect, 2, RakeRemoveExampleCB,NULL, 0);
   if(nRet != SUCCESS)
      return nRet;
   
   /* Free the region */
   L_FreeBitmapRgn(&LeadBitmap);
   /* Free the bitmap */
   L_FreeBitmap(&LeadBitmap);

   return SUCCESS;
}