L_GetFunctionalLookupTable

# include“l_bitmap.h”

L_LTIMGEFX_APIL_INTL_GetFunctionalLookupTable (pLookupTable, uLookupLen, nStart, nEnd, nFactor, uFlags)

根据指定的数学函数更新查找表中的项范围。

参数

L_INT* pLookupTable

指向要由此函数填充的查找表的指针。查找表的长度在uLookupLen参数。

L_UINTuLookupLen

控件所指向的查找表的长度pLookupTable参数。它可以是任何大于0的值。

L_INTnStart

要更新的查找表中第一个条目的索引。表中的指标与强度值对应。如果该参数值为负,则pLookupTable对应的索引值等于该参数值+ uLookupLen。其取值范围在(-uLookupLen/2)和(uLookupLen/2 - 1)之间。

L_INTnEnd

要更新的查找表中最后一个条目的索引。表中的指标与强度值对应。如果该参数为负,则对应的索引pLookupTable等于该参数的值+ uLookupLen。其可能值的范围在(-uLookupLen/2)和(uLookupLen/2 - 1)。

L_INTnFactor

属性中指定的函数操作中应用的因子uFlags参数。该参数仅在uFlags为FLT_EXP、FLT_SIGMOID或FLT_LN时使用。如果在uFlags中设置了FLT_EXP或FLT_SIGMOID,则该参数的值可以是任意整数(+/-)。如果设置了FLT_LN标志,它的值应该是>= 0。然而,如果nFactor = 0,查找表将从线性填充nStartnEnd,不管uFlags中设置的值如何。

L_UINTuFlags

标记,该标记指示用于更新查找表的函数,以及是否pLookupTable应该包含有符号或无符号的数据。

Flags表示用于更新查找表的函数:

价值 意义
FLT_EXP [0x0000]应用指数函数
FLT_LN [0x0001]应用自然对数函数。
FLT_LINEAR [0x0002]应用线性函数。
FLT_SIGMOID [0x0003]应用sigmoid函数。

Flag表示pLookupTable应该包含有符号数据还是无符号数据:

价值 意义
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的值根据以下公式修改查找表值(见下图):

查找表1

地点:

如果uFlags为FLT_LN,则nFactor根据以下公式修改查找表值(见下图):

查找表2

地点:

如果uFlags是FLT_SIGMOID, nFactor的值根据以下公式修改查找表的值(见下图):

查找表3

地点:

如果uFlags是FLT_LINEAR,nFactor将被忽略。该函数在两个点(nStart, nYStart)和(nEnd, nYEnd)之间执行线性插值,并将结果存储在查找表中。地点:

举个例子,假设用户想要选择一个点,改变该点(x)的强度值,然后执行两次线性插值:

要做到这一点,用户将继续执行以下操作:

关于另一个例子,请参考的例子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);返回成功;

栅格成像C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。