フレームを表示

L_ColorThresholdBitmap

フレームを表示

#include "l_bitmap.h"

L_LTIMGCLR_API L_INT L_ColorThresholdBitmappBitmap、uColorSpace、pCompData、uFlags

pBITMAPHANDLE pBitmap;

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

L_UINT uColorSpace;

/* カラースペース*/

pCOMPDATA pCompData;

/* 構造の配列へのポインター*/

L_UINT32 uFlags;

/* フラグ*/

8種類のカラースペースのいずれかを使用して、指定した範囲内または範囲外にあるピクセル成分値を再設定します。

パラメーター

説明

pBitmap

エフェクトを適用するビットマップを参照文に引用するビットマップハンドルへのポインター。

uColorSpace

しきい値が基づくカラースペース。設定可能な値は、以下の通りです。

 

意味

 

CLTH_RGB_SPACE

[0x00000000]RGB色空間

 

CLTH_HSV_SPACE

[0x00000001]HSVカラースペース

 

CLTH_HLS_SPACE

[0x00000002]HLSカラースペース

 

CLTH_XYZ_SPACE

[0x00000003]XYZカラースペース

 

CLTH_YCrCb_SPACE

[0x00000004]YCrCbカラースペース

 

CLTH_YUV_SPACE

[0x00000005]YUVカラースペース

 

CLTH_LAB_SPACE

[0x00000006]LABカラースペース

 

CLTH_CMY_SPACE

[0x00000007]CMYカラースペース

pCompData

パラメータを格納する3つのCOMPDATA構造体の配列へのポインターは、各々のコンポーネントを比較して、修正しました。

uFlags

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

戻り値

SUCCESS

関数は成功しました。

<1

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

コメント

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

この関数はL_ConvertColorSpace関数と類似しているが、範囲の外に落ちるそれらの値を処理するために範囲と様々なオプションの仕様を許可することによって、より大きい柔軟性を提供します。あらゆるカラースペースコンポーネントが様々なレンジを備えているかもしれない点に注意してください。

 

カラーコンポーネント

8ビットコンポーネントのための範囲

16ビットコンポーネントのための範囲

RGB

 

 

R

0 255

0 - 65535

G

0 255

0 - 65535

B

0 255

0 - 65535

HSV

 

 

H

0 - 360

0 - 36000

S

0 - 100

0 - 10000

V

0 - 255

0 - 65535

HL

 

 

H

0 - 360

0 - 36000

L

0 - 255

0 - 65535

S

0 - 100

0 - 10000

XYZ

 

 

X

0 - 255

0 - 65535

Y

0 - 255

0 - 65535

Z

0 - 255

0 - 65535

YCrCb

 

 

Y

0 - 255

0 - 65535

cr

-128 - 127

-32768 - 32767

Cb

-128 - 127

-32768 - 32767

YUV

 

 

Y

0 - 255

0 - 65535

U

-112 - 111

-28567 - 28566

V

-138 - 137

-35337 - 35336

LAB

 

 

L

0 - 100

0 - 10000

A

-128 - 127

-32768 - 32767

B

-128 - 127

-32768 - 32767

CMY

 

 

C

0 - 255

0 - 65535

M

0 - 255

0 - 65535

Y

0 - 255

0 - 65535

 

この関数は、以下のように機能します:

1。

ビットマップは、必須のカラースペースに変換されます。

2。

ピクセルごとに、以下の操作は実行されます:各々のコンポーネントは、nMinRangeと適切なCOMPDATA構造体のnMaxRange範囲と比較されます。

 

a。

範囲内にあれば、そのコンポーネントはテストを「合格した」とみなされます。

 

b。

範囲外にあれば、そのコンポーネントは「拒否されました」。CLTH_TYP_BANDREJECTフラグは、「渡される」「拒絶された」コンポーネントとviceversaを作ることによって、これを反転します。

3。

CLTH_MOD_CHANNELが設定されるならば、コンポーネントは独立して修正されます。CLTH_MOD_ALLが渡されたならば、任意のコンポーネントが拒絶されるならば、ピクセルはテストによって拒絶されます。その後、ピクセル/コンポーネントが拒絶されるならば:

 

a。

CLTH_VALUE_MINが渡されるならば、拒絶されたピクセル/コンポーネントは0に設定されます。

 

b。

CLTH_VALUE_MAXが渡されるならば、拒絶されたピクセル/コンポーネントは255に設定されます。

 

c。

CLTH_VALUE_CLAMPが渡されるならば、そのnMinを差し引いたコンポーネントは0へ行きます、そして、nMaxより大きいコンポーネントは255へ行きます。これはCLTH_MOD_CHANNELだけで機能します、そして、CLTH_TYP_BANDPASSはフラグを立てます。

この関数は1、2、3、8,16、24、32、48と64ビットカラービットマップのために機能して、24と48ビットビットマップのために、リージョンをサポートすることができます。24または48ビットビットマップがリージョンを持っているならば、エフェクトはリージョンの上でだけ適用されます。

1つの構造体が、カラーコンポーネントごとに使われます。命令は、CLTH_xxx_SPACE名で同じであると考えられます。たとえば、CLTH_RGB_SPACEのために:

pCompData [0]構造体が、青成分。のために使われます

pCompData [1]構造体が、緑成分。のために使われます

RedコンポーネントのためのpCompData [2]構造体が、使われます

pCompData [0].uStructSizeは、この関数を呼び出す前に、sizeof(COMPDATA)に設定されなければなりません。構造の配列のために、配列の最初の構造体だけは、uStructSizeメンバを設定しておく必要があります。

状況表示バーを更新するか、この関数の実行の間、ユーザー割り込みを検出するために、L_SetStatusCallbackを参照します。

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

必須のDLLとライブラリ

LTIMGCLR

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

プラットホーム

Win32、x64、Linux

参照

関数:

L_BinaryFilterBitmap, L_ConvertColorSpace, L_ColorSeparateBitmap, L_ColorMergeBitmap, L_AddBitmapNoise, L_IntensityDetectBitmap, L_SpatialFilterBitmap, L_BinaryFilterBitmap, L_MaxFilterBitmap, L_MinFilterBitmap, L_AddShadowBitmap, L_ChangeHueSatIntBitmap, L_ColorThresholdBitmap, L_DFTBitmap, L_AllocFTArray, L_DirectionEdgeStatisticalBitmap, L_FFTBitmap, L_FreeFTArray, L_FrqFilterBitmap, L_FrqFilterMaskBitmap, L_FTDisplayBitmap, L_GetBitmapStatisticsInfo, L_GetFeretsDiameter, L_GetObjectInfo, L_GetRgnContourPoints, L_GetRgnPerimeterLength, L_MathFunctionBitmap, L_RevEffectBitmap, L_SegmentBitmap, L_SubtractBackgroundBitmap, L_UserFilterBitmap, L_AdjustBitmapTint, L_ColorHalfToneBitmap

トピック:

ラスター画像は機能します:輝度値の変更

 

色の補正

 

ラスター画像は機能します:ピクセル値の取得と設定

 

ラスター画像は機能します:カラースペース変換の実行

 

ラスター画像は機能します:色の補正

サンプル

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


L_LTIMGTEX_API  L_INT ColorThresholdBitmapExample(L_VOID)
{
   L_INT nRet;
   BITMAPHANDLE LeadBitmap;   /* Bitmap handle for the image */
   COMPDATA          pCompData[3];
   L_INT                     nI;

   /* Load a bitmap at its own bits per pixel  */
   nRet = L_LoadBitmap(MAKE_IMAGE_PATH(TEXT("ImageProcessingDemo\\Image1.jpg")), &LeadBitmap, sizeof(BITMAPHANDLE), 0, ORDER_BGR, NULL, NULL);
   if(nRet !=SUCCESS)
      return nRet;

   pCompData[0].uStructSize = sizeof(COMPDATA);
   for (nI = 0; nI < 3; nI++)
   {
       pCompData[nI].nMinRange = 128;
       pCompData[nI].nMaxRange = 255; 
       pCompData[nI].uFlags = 0;
   }

   /* Apply color Threshold effect on the image*/
   nRet = L_ColorThresholdBitmap(&LeadBitmap, CLTH_RGB_SPACE,  pCompData, 0);
   if(nRet !=SUCCESS)
      return nRet;
   nRet = L_SaveBitmap(MAKE_IMAGE_PATH(TEXT("Result.BMP")), &LeadBitmap, FILE_BMP, 24, 0, NULL);
   if(nRet !=SUCCESS)
      return nRet;
   //free bitmap 
   if(LeadBitmap.Flags.Allocated)  
      L_FreeBitmap(&LeadBitmap);  
   return SUCCESS;
}