# 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的值根据以下公式修改查找表值(见下图):
地点:
nStartnEndX =选中点的强度值
如果uFlags为FLT_LN,则nFactor根据以下公式修改查找表值(见下图):
地点:
X =选中点的强度值
如果uFlags是FLT_SIGMOID, nFactor的值根据以下公式修改查找表的值(见下图):
地点:
X =选中点的强度值
如果uFlags是FLT_LINEAR,nFactor将被忽略。该函数在两个点(nStart, nYStart)和(nEnd, nYEnd)之间执行线性插值,并将结果存储在查找表中。地点:
nStartnEnd举个例子,假设用户想要选择一个点,改变该点(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点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。
