# include“l_bitmap.h”
L_LTIMGEFX_APIL_INTL_GetFunctionalLookupTable (pLookupTable, uLookupLen, nStart, nEnd, nFactor, uFlags)
根据指定的数学函数更新查找表中的项范围。
指向要由此函数填充的查找表的指针。查找表的长度在uLookupLen
参数。
控件所指向的查找表的长度pLookupTable
参数。它可以是任何大于0的值。
要更新的查找表中第一个条目的索引。表中的指标与强度值对应。如果该参数值为负,则pLookupTable对应的索引值等于该参数值+ uLookupLen。其取值范围在(-uLookupLen/2)和(uLookupLen/2 - 1)之间。
要更新的查找表中最后一个条目的索引。表中的指标与强度值对应。如果该参数为负,则对应的索引pLookupTable
等于该参数的值+ uLookupLen。其可能值的范围在(-uLookupLen/2)和(uLookupLen
/2 - 1)。
属性中指定的函数操作中应用的因子uFlags
参数。该参数仅在uFlags为FLT_EXP、FLT_SIGMOID或FLT_LN时使用。如果在uFlags中设置了FLT_EXP或FLT_SIGMOID,则该参数的值可以是任意整数(+/-)。如果设置了FLT_LN标志,它的值应该是>= 0。然而,如果nFactor = 0,查找表将从线性填充nStart
来nEnd
,不管uFlags中设置的值如何。
标记,该标记指示用于更新查找表的函数,以及是否pLookupTable
应该包含有符号或无符号的数据。
价值 | 意义 |
---|---|
FLT_EXP | [0x0000]应用指数函数 |
FLT_LN | [0x0001]应用自然对数函数。 |
FLT_LINEAR | [0x0002]应用线性函数。 |
FLT_SIGMOID | [0x0003]应用sigmoid函数。 |
价值 | 意义 |
---|---|
FLT_SIGNED | [0x0010] pLookupTable应该包含签名数据。 |
价值 | 意义 |
---|---|
成功 | 活动很成功。 |
< 1 | 发生错误。指返回代码. |
此函数将使用uFlags参数中指定的预定义函数更新查找表数组。在大多数情况下,此函数与L_RemapBitmapIntensity函数。
如果(nEnd - nStart)的值超过uLookupLen
,函数返回ERROR_INV_PARAMETER错误码。
的nFactor
参数仅用于log、exp和sigmoid函数。如果nFactor = 0,函数在两点之间执行线性插值nStart
而且nEnd
并将结果存储在查找表中,不管uFlags中设置的值如何。
如果uFlags
是FLT_EXP, nFactor的值根据以下公式修改查找表值(见下图):
地点:
nStart
nEnd
X =选中点的强度值
如果uFlags为FLT_LN,则nFactor
根据以下公式修改查找表值(见下图):
地点:
X =选中点的强度值
如果uFlags
是FLT_SIGMOID, nFactor的值根据以下公式修改查找表的值(见下图):
地点:
X =选中点的强度值
如果uFlags是FLT_LINEAR,nFactor
将被忽略。该函数在两个点(nStart, nYStart)和(nEnd, nYEnd)之间执行线性插值,并将结果存储在查找表中。地点:
nStart
nEnd
举个例子,假设用户想要选择一个点,改变该点(x)的强度值,然后执行两次线性插值:
要做到这一点,用户将继续执行以下操作:
通过赋值将新的强度值存储在Lookup表中:
pLookupTable[0] = 0;
pLookupTable[x] = newIntensity;
调用L_GetFunctionalLookupTable, nStart设置为0,nEnd设置为x, uFlags设置为FLT_LINEAR。
通过赋值将新的强度值存储在Lookup表中:
pLookupTable[x] = newIntensity;//可以忽略,因为查找表的值应该与前面的步骤相同。
pLookupTable[nEnd] = uLookupLen;
调用L_GetFunctionalLookupTable, nStart设置为x,nEnd
设置为uLookupLen
,uFlags
设置为FLT_LINEAR。(例如,假设图像是每像素8位。)
关于另一个例子,请参考的例子L_RemapBitmapIntensity.
必需的dll和库
Win32, x64, Linux。
本例将使用受指数函数影响的查找表使加载的位图变暗。
L_INT GetFunctionalLookupTableExample (L_VOID)
{
L_INT nRet;
L_UINT LookupTable [256];/*存放查找表的数组*/
BITMAPHANDLE LeadBitmap;/*保存加载图像的位图句柄
/*加载位图,强制每像素24位*/
nRet = L_LoadBitmap (MAKE_IMAGE_PATH(TEXT(“ImageProcessingDemo \ \ Image3.cmp”&LeadBitmap)),运算符(bitmaphandle), 24, order_bgr, null, null);
如果(nRet ! =成功)
返回nRet;
/*获取查找表数组由指数函数计算为所有的项目数组从0到255*/
nRet = L_GetFunctionalLookupTable ((L_INT *)LookupTable, 256,0, 255, 5, FLT_EXP);
如果(nRet ! =成功)
返回nRet;
nRet = L_RemapBitmapIntensity (&LeadBitmap, (L_INT *)LookupTable, 256,CHANNEL_MASTER);
如果(nRet ! =成功)
返回nRet;
L_SaveBitmap(MAKE_IMAGE_PATH(TEXT)“Result.BMP”)), &LeadBitmap, FILE_BMP, 24, 0, NULL);
如果(nRet ! =成功)
返回nRet;
/ /免费的位图
如果(LeadBitmap.Flags.Allocated)
L_FreeBitmap (&LeadBitmap);
返回成功;
}
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗网络查看器net
188宝金博怎么下载
支持的平台上
.NET、Java、Android和iOS/macOS程序集
C API/ c++类库
HTML5 JavaScript库
您的邮件已发送给技术支持!应该有人联系!如果你的事情很紧急,请回来聊天。
聊天时间:
周一至周五,美国东部时间上午8:30至下午6:00
感谢您的反馈!
请再次填写表格,开始新的聊天。
所有代理目前都离线。
聊天时间:
星期一至星期五
美国东部时间上午8:30 -下午6点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。