# include“l_bitmap.h”
L_LTIMGCLR_APIL_INT确切地,L_RemapBitmapIntensity (pBitmap uLUTLen uFlags)
使用查找表来改变位图的强度值。
位图句柄指针引用的位图被改变。
表uLUTLen
包含查找整数的值。
查找表的长度。可能的值是:
如果用于REMAP_NORMAL的旗帜uFlags
参数:
(2 ^ (HighBit - LowBit + 1))
如果不用于uFlags REMAP_NORMAL标志参数:
(1 < < pBitmap - > BitsPerPixel)
旗帜,表明:
确切地
包含正常或拉伸数据。你可以在适当的时候把每组的值通过使用位或(|)。以下是有效值:
价值 | 意义 |
---|---|
CHANNEL_MASTER* | [0]所有频道。 |
CHANNEL_RED | [1]红色通道。 |
CHANNEL_GREEN | [2]绿色通道。 |
CHANNEL_BLUE | [3]蓝色通道。 |
价值 | 意义 |
---|---|
REMAP_CHANGEHIGHBIT | [0 x0010]改变高的位图(pBitmap - > HighBit)确切地根据所使用的数据。 |
价值 | 意义 |
---|---|
REMAP_NORMAL | [0 x0100]中的数据确切地是正常的数据,在这种情况下uLUTLen 应该等于2 ^ (HighBit - LowBit + 1)。 |
价值 | 意义 |
---|---|
成功 | 函数是成功的。 |
< 1 | 一个错误发生。指返回代码。 |
可以将更改应用到红色,绿色,蓝色,或所有颜色通道。
电流强度值对应表索引。条目的值被应用的新值。
位图强度级别范围取决于图像的分辨率:
确保确切地
包含位图强度水平的数量。例如,如果位图是16位的最大位图强度级别(2 ^ 16)1。
这个函数可以用来实现终端用户Photoshop等特性曲线。
更新状态栏或检测用户中断在执行这个函数,引用L_SetStatusCallback。
这个函数支持12 - 16位灰度和48和64位彩色图像。支持12 - 16位灰度和48和64位彩色图像是可用的文档和医疗成像工具包。
这个函数不支持32位灰度图像。它返回错误代码ERROR_GRAY32_UNSUPPORTED如果一个32位的灰度图像是传递给这个函数。
为了加快LEADTOOLS广泛使用的图像处理过滤器,灰度值(主频道)的彩色图像使用以下公式计算:
#定义CalcGrayValue (r, g, b) ((L_UCHAR) (((L_UCHAR) (((2 * (L_UINT) (r)) + (5 * (L_UINT) (g)) + (L_UINT) (b) + 4) / 8))))
#定义CalcGrayValue16 (r, g, b) ((L_UINT16) (((2 * (L_UINT32) (r)) + (5 * (L_UINT32) (g)) + (L_UINT32) (b) + 4) / 8))
#定义CalcGrayValue32 (r, g, b) ((L_UINT32) (((2 * (L_UINT32) (r)) + (5 * (L_UINT32) (g)) + (L_UINT32) (b) + 4) / 8))
必需的dll和库
Win32 x64, Linux。
这个例子将反转加载位图利用查找表受到线性函数的影响
L_INT RemapBitmapIntensityExample (L_VOID)
{
L_INT nRet;
L_UINT LookupTable [256];/ * * /数组来保存查找表
BITMAPHANDLE LeadBitmap;/ * * /加载位图句柄保存图像
/ *加载位图,被迫每像素24 * /
nRet = L_LoadBitmap (MAKE_IMAGE_PATH(文本(“sample5.cmp”&LeadBitmap)),运算符ORDER_BGR (BITMAPHANDLE), 24日,空,空);
如果(nRet ! =成功)
返回nRet;
/ *得到查找表的数组计算的线性函数的所有条目数组从0 - 255 * /
LookupTable [0] = 255;
LookupTable [255] = 0;
nRet = L_GetFunctionalLookupTable (0 (L_INT *) LookupTable, 256年,255年,0,FLT_LINEAR);
如果(nRet ! =成功)
返回nRet;
nRet = L_RemapBitmapIntensity (&LeadBitmap LookupTable (L_INT *), 256年,CHANNEL_MASTER);
如果(nRet ! =成功)
返回nRet;
nRet = L_SaveBitmap (MAKE_IMAGE_PATH(文本(“Result.BMP”))、&LeadBitmap FILE_BMP, 24岁,0,NULL);
如果(nRet ! =成功)
返回nRet;
/ /免费的位图
如果(LeadBitmap.Flags.Allocated)
L_FreeBitmap (&LeadBitmap);
返回成功;
}
/ /这个例子将所有图片转换为图像并将反其数据签名。
L_INT RemapBitmapIntensity_Signed_Example (pBITMAPHANDLE pBitmap)
{
L_INT nRet;
L_INT * pLookupTable =零;/ * * /数组来保存查找表
L_INT nMaxValue nMinValue;
L_INT nLutLen;
nLutLen = 1 < < (pBitmap - > HighBit - pBitmap - > LowBit + 1);/ /得到真正的附近地区的长度
如果(! pBitmap - > Flags.Signed)
返回失败;/ /图像应该签署
nMinValue = 1 * nLutLen / 2;/ /这是最低期望值。
nMaxValue = nLutLen / 2 - 1;/ /这是最高的期望值。
pLookupTable = (L_INT *) malloc (nLutLen *运算符(L_INT));
如果(pLookupTable = = NULL)
返回ERROR_NO_MEMORY;
memset (pLookupTable 0 nLutLen *运算符(L_INT));
/ *得到查找表的数组计算线性函数的数组的所有项目从0 - nLutLen * /
如果(nMinValue < 0)
pLookupTable [nMinValue + nLutLen] = nLutLen / 2 - 1;
其他的
pLookupTable [nMinValue] = nLutLen / 2 - 1;
如果(nMaxValue < 0)
pLookupTable [nMaxValue + nLutLen] = 1 * nLutLen / 2;
其他的
pLookupTable [nMaxValue] = 1 * nLutLen / 2;
/ /生成一个消极的附近地区。
nRet = L_GetFunctionalLookupTable (pLookupTable nLutLen 1 * nLutLen / 2, nLutLen / 2 - 1, 1, FLT_LINEAR | FLT_SIGNED);
如果(nRet ! =成功)
{
免费(pLookupTable);
返回nRet;
}
/ /反转的图像。
nRet = L_RemapBitmapIntensity (pBitmap pLookupTable、nLutLen CHANNEL_MASTER | REMAP_NORMAL);
如果(nRet ! =成功)
{
免费(pLookupTable);
返回nRet;
}
免费(pLookupTable);
返回成功;
}
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。