L_WindowLevelBitmap

# include“l_bitmap.h”

L_LTIMGCOR_APIL_INTL_WindowLevelBitmap (pBitmap, nLowBit, nHighBit, pLUT, uLUTLength, nOrderDst, uFlags)

将12位或16位灰度图像转换为8位灰度图像或24位RGB位图。

参数

pBITMAPHANDLEpBitmap

指向位图句柄的指针,引用要调平的位图。

L_INTnLowBit

用于调平的低位值。0 <= nLowBit <= nHighBit <=(12位灰度为11,16位灰度为15)。

L_INTnHighBit

用于调平的高位的值。0 <= nLowBit <= nHighBit <=(12位灰度为11,16位灰度为15)。

RGBQUAD*确切地

可选查找表,可用于实现用户定义的转换。对于在0到2之间的强度值的幂(nHighBit-nLowBit+ 1) - 1,在查找表中应该有一个对应的条目,包含一个RGB四边形。如果pLUT为NULL,则转换为正常移位(右移或左移),输出位图为8位灰度。如果pLUT不为NULL,则输出位图为24位位图。

L_UINTuLUTLength

值,该值指示由pLUT指向的条目的数量。

L_INTnOrderDst

值,如果输出位图为24位,则指示颜色顺序。如果确切地为NULL时,该参数将被忽略。可能的值是:

价值 意义
ORDER_RGB [0]输入颜色为红绿蓝顺序。
ORDER_BGR [1]输入颜色为蓝、绿、红顺序。

L_UINT32uFlags

保留以备将来使用。必须是0。

返回

价值 意义
成功 函数成功。
< 1 一个错误发生。指返回代码

评论

这个函数将位图转换为窗口水平位图。要在不影响图像的情况下实现窗口调平,请使用L_WindowLevel

位图数据由此函数更改。

该函数支持12位和16位灰度。中提供对12位和16位灰度图像的支持文档和医疗成像工具包。

这个函数类似于L_WindowLevelBitmapExt,只不过它使用8位的每个组件LUT,而不是16位的每个组件LUT。如果需要更高的精度,可以使用L_WindowLevelBitmapExt而不是L_WindowLevelBitmap

有关保存已被窗口调平的位图的信息,请参见储蓄Window-Leveled位图

对于10-16位灰度图像,LEADTOOLS支持两种LUT(8位LUT和16位LUT)。典型的灰度图像显示和处理是使用8位LUT完成的。但是,您也可以使用16位LUT,它提供了更高的精度。一些特殊的视频卡和监视器还支持使用16位LUT显示灰度图像。

该函数不支持32位灰度图像。如果将32位灰度图像传递给此函数,则返回错误代码ERROR_GRAY32_UNSUPPORTED。

所需的dll和库

平台

Win32 x64, Linux。

另请参阅

功能

主题

例子

此示例窗口使用自定义调色板对位图进行调平。图像
本例中修改了数据。

L_INT WindowLevelBitmapExample (pBITMAPHANDLE pBitmap)/*加载一个传递的24位图像*/L_INT nRet;L_UINT32 x;RGBQUAD * ptmp;RGBQUAD *确切地;L_INT nLowBit;L_INT nHighBit;L_INT nLow;L_INT nHigh;L_UINT32 nSize;/*将位图更改为16位灰度*/nRet = L_GrayScaleBitmap(pBitmap, 16);如果(nRet ! =成功)返回nRet;nRet = L_GetMinMaxBits(pBitmap, &nLowBit, &nHighBit, 0);如果(nRet ! =成功)返回nRet;nRet = L_GetMinMaxVal(pBitmap, &nLow, &nHigh, 0);如果(nRet ! =成功)返回nRet;nSize = (L_UINT32)(1L<<(pBitmap->HighBit - pBitmap->LowBit + 1));pLUT = (RGBQUAD *)GlobalAllocPtr(GHND, nSize * .运算符(RGBQUAD));ptmp =确切地;/*用RED填充LUT的前半部分*/(x = 0; x < nSize / 2; x + +)ptmp - > rgbRed = 255;ptmp - > rgbGreen = 0;ptmp - > rgbBlue = 0;ptmp - > rgbReserved = 0;ptmp + +;/*用灰色值填充其余部分*/(x = nSize / 2; x < nSize; x + +)ptmp->rgbRed = ((L_UCHAR) ((L_UINT32) (x - nLow) * 255 / (nHigh - nLow));ptmp - > rgbGreen = ptmp - > rgbRed;ptmp - > rgbBlue = ptmp - > rgbGreen;ptmp - > rgbReserved = 0;ptmp + +;nRet = L_WindowLevelBitmap (pBitmap, nLowBit, nHighBit,(RGBQUAD *)pLUT, nSize, ORDER_BGR, 0);如果(nRet ! =成功)返回nRet;GlobalFreePtr(确切地);返回成功;

LEADTOOLS光栅成像C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。