Available in LEADTOOLS Medical Imaging toolkits. |
L_ApplyModalityLUT
#include "l_bitmap.h"
L_LTIMGCOR_API L_INT L_ApplyModalityLUT (pBitmap, pLUT, pLUTDescriptor, uFlags)
pBITMAPHANDLE pBitmap; |
/* pointer to the main bitmap handle */ |
L_UINT16 *pLUT; |
/* pointer to the lookup table to be applied to the bitmap */ |
pDICOMLUTDESCRIPTOR pLUTDescriptor; |
/* pointer to the structure describing the LUT parameters */ |
L_UINT uFlags; |
/* flags */ |
Remaps the bitmap pixels through a lookup-table (LUT).
Parameter |
Description |
pBitmap |
Pointer to the main bitmap handle. |
pLUT |
Pointer to the lookup table to be applied to the bitmap. |
pLUTDescriptor |
Pointer to a structure describing the LUT parameters. |
uFlags |
Flags that indicate the channel that will be used, the treatment of the input pixel values, the mathematical operation, and the treatment of the output pixel values. Use a bitwise OR ( | ) to specify one flag from each group. Refer to Flags for the L_ApplyMathLogicBitmap Function for the list of flags. |
Comment
This function does not support 32-bit grayscale images. It returns the error code ERROR_GRAY32_UNSUPPORTED if a 32-bit grayscale image is passed to this function.
Required DLLs and Libraries
LTIMGCOR For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application. |
Platforms
Windows 2000 / XP/Vista.
See Also
Example
L_INT ApplyModalityLUTExample(pBITMAPHANDLE pBitmap,L_BOOL bLinear) { L_INT nRet; if(bLinear) { nRet = L_ApplyLinearModalityLUT (pBitmap, 0.0, 0.5, 0); if(nRet != SUCCESS) return nRet; } else { L_UINT16 *pLUT; L_UINT16 i; DICOMLUTDESCRIPTOR LUTDescriptor; // allocate and initialize the LUT pLUT = (L_UINT16 *)malloc(0x10000 * sizeof(L_UINT16)); if(!pLUT) return ERROR_NO_MEMORY; // set a LUT which reduces the intensity of each pixel to half for(i = 0; i <= 0xFFFF; i++) pLUT[i] = i / 2; // fill the LUTDescriptor structure LUTDescriptor.uStructSize =sizeof(LUTDescriptor); LUTDescriptor.nFirstStoredPixelValueMapped = 0; LUTDescriptor.uEntryBits = 16; LUTDescriptor.uNumberOfEntries = 0x10000; // apply the LUT nRet = L_ApplyModalityLUT(pBitmap, pLUT, &LUTDescriptor, 0); if(nRet != SUCCESS) { return nRet; } // free the LUT free(pLUT); } return SUCCESS; }