|
IMVLookUpTable
The IMVLookUpTable interface is used to control the filter's
image processing algorithm. Read the filter description to see how the
filter is used. Read the remarks for implementation
details.
Header file: iMVLookUpTable.h
Interface definition language file: iMVLookUpTable.idl
Typelib: MVLookUpTable
Interface ID: IID_IMVLookUpTable
HRESULT get_LookUpTable( [out,
retval] int iLUT[256] );
Returns the currently used look up table.
Parameter:
|
|
iLUT |
A pointer to an array of 256 integers that
receives the look up table. |
HRESULT put_LookUpTable( [in ]
int iLUT[256] );
Sets the currently used look up table.
Parameter:
|
|
iLUT |
A pointer to an array of 256 integers
that contains the look up table. |
HRESULT get_LUTMarks( [out, retval] int iMarks[256]
);
Returns the LUT marks (Points). A LUT point is set to -1, if it
is disabled. The initial LUT mark array contains the following
entries: mark[0]=0, mark[1] ... mark[254]=-1, mark[255]=255.
Parameter:
|
|
iMarks |
A pointer to an array of 256 integers that
receives the marks. |
HRESULT put_LUTMarks( [in ] int iMarks[256]
);
Sets the LUT marks (Points). Set a LUT point to -1 to
disable it. The initial LUT mark array contains the following
entries: mark[0]=0, mark[1] ... mark[254]=-1, mark[255]=255.
Parameter:
|
|
iMarks |
A pointer to an array of 256 integers
that contains the marks. |
HRESULT PutLUTMark( [in ] byte byInput, [in ] int
iOutput );
Sets a single LUT mark (Point). Set a LUT point to -1 to
disable it.
Parameter:
|
|
byInput |
The input value of the look up table. (The LUT
index) |
|
|
iOutput |
The output value of the look up table. (The LUT
value at index byInput) |
HRESULT get_LUTMode( [out, retval] int *piMode
);
Returns the filter mode. Either an automatic mode ("equalize
histogram" or "stretch histogram") or the manual mode
("manually modify LUT").
Parameter:
|
|
piMode |
A pointer to an integer value that receives the
look up table filter mode as MV_LUT_MODE . |
HRESULT put_LUTMode( [in ] int iMode
);
Sets the filter mode. Either an automatic mode ("equalize
histogram" or "stretch histogram") or the manual mode
("manually modify LUT").
Parameter:
HRESULT get_LUTMethod( [out, retval] int *piMethod
);
Returns the method that is used to connect the marks in the LUT.
Either linear or by splines.
Parameter:
|
|
piMethod |
A pointer to an integer value that receives the
connection method for the LUT marks as MV_LUT_METHOD . |
HRESULT put_LUTMethod( [in ] int iMethod
);
Sets the method that is used to connect the marks in the
LUT. Either linear or by splines.
Parameter:
|
|
iMethod |
The connection method for the LUT marks as
MV_LUT_METHOD . |
HRESULT Reset();
Resets the look up table to its initial values ( for(int
index=0; index<256; index++) LUT[index] = index; ).
Filter specific structures and enumerators
typedef enum _MV_LUT_MODE
{
MV_LUT_EQUALIZE= 0,
MV_LUT_STRETCH,
MV_LUT_LUT
} MV_LUT_MODE;
typedef enum _MV_LUT_METHOD
{
MV_LUT_LINEAR=0,
MV_LUT_SPLINE
} MV_LUT_METHOD;
The following sequence is used to set a user defined look
up table.
IMVLookUpTable *pIMVLookUpTable;
...
//We want to create the following
look up table
//
// Output
---
//
/
//
/
//
/
// /
// ---
Input
//
// Enable manual look up
table
pIMVLookUpTable->put_LUTMode(
MV_LUT_LUT );
// Reset look up table - LUT[index] =
index;
pIMVLookUpTable->Reset();
// All color channel values higher than
200 are set to white (255)
pIMVLookUpTable->put_PutLUTMark( 201,
255 );
// All color channel values lower than 56
are set to black (0)
pIMVLookUpTable->put_PutLUTMark( 55, 0
);
// Connect LUT marks linear
pIMVLookUpTable->put_LUTMethod(
MV_LUT_LINEAR );
|