跳转到内容

查找表 (LUT)#

相机的 LUT 功能允许您用自己定义的值替换图像中的像素值。

这是通过创建用户定义的查找表 (LUT) 来完成的。

该功能的使用#

运作原理#

LUT 是“查找表”的简称,它基本上是数字的索引列表。对于 Basler 相机,您可以创建用户定义的“亮度查找表”以替换图像中的像素值,即亮度或灰度值。

在查找表中,您可以为单个像素值定义替换值。例如,您可以将灰度值 4 095(= 12 位像素格式的最大灰度值)替换为灰度值 0(= 最小灰度值)。这会将图像中的所有全白像素更改为全黑像素。

例如,如果要优化图像的亮度,设置用户定义的 LUT 可能会很有用。通过预先定义替换值并将其存储在相机中,可以避免应用执行耗时的计算。取而代之的是,相机可以根据像素的初始值在 LUT 中轻松查找所需的新值。

信息

用户定义的 LUT 值范围(0–1024 或 0–4096)取决于当前选择的像素格式。它取决于相机的最大像素位深度

如果您的相机支持 12 位像素格式,但当前使用的是 8 位像素格式,您仍然可以输入 0 到 4096 之间的像素值。相机使用这些值进行转换。然后丢弃转换后所得到值的 4 个最低有效位,并发送 8 个最高有效位。

替换单个 LUT 条目#

要替换ace查找表中的单个条目:

  1. LUTIndex 参数设置为要替换为新值的像素值。
  2. LUTValue 参数设置为新的像素值。
  3. 对要替换的所有像素值重复步骤 1 和 2。
  4. LUTEnable 参数设置为 true

Basler 建议使用编程循环(例如 for 循环)来迭代这些值。请参阅下面的示例代码

LUT 条目数#

LUT 中可用条目的数量因相机型号而异。

根据 LUT 条目的数量,并非总是可以存储所有可能像素值的替换值。

具有 512 个条目的 LUT

大多数 Basler 相机上,用户定义的 LUT 最多可以存储 512 个条目。该大小不足以存储 1,024 或 4,096 个替换值。

因此,存在以下限制:

  • 最大像素位深度10 位的相机上,您只能将 LUTIndex 参数设置为 2 的倍数(0、2、4、6、…、1022)。这意味着只能替换 0、2、4、6 等像素值。
  • 在最大像素位深度为 12 位的相机上,您只能将 LUTIndex 参数设置为 8 的倍数(0、8、16、24、…、4088)。这意味着只能替换 0、8、16、24 等像素值。

为了确定剩余的像素值,相机会执行直线插值。

示例:假设相机的最大像素位深度为 12 位。还要假设您已创建了一个 LUT,该 LUT 将 24 的灰度值转换为 20,并将 32 的灰度值转换为 30。在这种情况下,相机将按以下方式确定 24 到 32 之间的像素值:

原始像素值 LUT 中存储的值 插值 新像素值(四舍五入)
24 20 20 20
25 - 21.25 21
26 - 22.5 22
27 - 23.75 23
28 - 25 25
29 - 26.25 26
30 - 27.5 27
31 - 28.75 28
32 30 30 30

信息

不会插入高于 4088 的像素值。而是会将 4088 和 4095 之间的所有像素值替换为在 LUT 索引位置 4088 处输入的像素值。

具有 1024 或 4096 个条目的 LUT

一些 Basler 相机上,用户定义的 LUT 可以存储所有替换值的条目。根据相机的最大像素位深度,可以使用 1,024 或 4,096 个条目。

这意味着以上部分中描述的限制不适用:您可以按照 1 为增量设置 LUTIndex 参数,并且不执行插值。

替换所有 LUT 条目#

您可以通过一次操作替换ace查找表中的所有条目。在很多情况下,这比在 LUT 中反复更改各个条目更快。

要替换ace查找表中的所有条目:

  1. LUTValueAll 参数设置为所需值。
    确保使用 4 字节字的正确字节序(LUT 值)。
  2. LUTEnable 参数设置为 true

信息

LUTValueAll 参数只能通过 pylon API 使用,而不能通过 pylon Viewer 功能树使用。

参数结构取决于相机的最大像素位深度

12 位相机型号#

最大像素位深度为 12 位的相机上,LUTValueAll 参数是一个由 4096 x 4 字节组成的数组。每个 4 字节字代表一个 LUTValue 参数值。

LUTValue 参数值按 LUTIndex 编号升序排序(0 到 4095)。

信息

10 位相机型号#

最大像素位深度为 10 位的相机上,LUTValueAll 参数是一个由 1024 x 4 字节组成的数组。每个 4 字节字代表一个 LUTValue 参数值。

LUTValue 参数值按 LUTIndex 编号升序排序(0 到 1023)。

信息

附加参数#

LUTSelector 参数允许您选择查找表。

由于 Basler 相机上只有一个用户定义的查找表,因此该参数当前不起作用。

详情#

显示所有相机型号

相机型号 LUT 条目数 4 字节字的字节序(LUT 值)
a2A1920-51gcBAS 4096 大字节序
a2A1920-51gcPRO 4096 大字节序
a2A1920-51gmBAS 4096 大字节序
a2A1920-51gmPRO 4096 大字节序
a2A1920-160ucBAS 4096 小字节序
a2A1920-160ucPRO 4096 小字节序
a2A1920-160umBAS 4096 小字节序
a2A1920-160umPRO 4096 小字节序
a2A2590-22gcBAS 4096 大字节序
a2A2590-22gcPRO 4096 大字节序
a2A2590-22gmBAS 4096 大字节序
a2A2590-22gmPRO 4096 大字节序
a2A2590-60ucBAS 4096 小字节序
a2A2590-60ucPRO 4096 小字节序
a2A2590-60umBAS 4096 小字节序
a2A2590-60umPRO 4096 小字节序
a2A3840-13gcBAS 4096 大字节序
a2A3840-13gcPRO 4096 大字节序
a2A3840-13gmBAS 4096 大字节序
a2A3840-13gmPRO 4096 大字节序
a2A3840-45ucBAS 4096 小字节序
a2A3840-45ucPRO 4096 小字节序
a2A3840-45umBAS 4096 小字节序
a2A3840-45umPRO 4096 小字节序
acA640-90gc 512 大字节序
acA640-90gm 512 大字节序
acA640-90uc 512 小字节序
acA640-90um 512 小字节序
acA640-120gc 512 大字节序
acA640-120gm 512 大字节序
acA640-120uc 512 小字节序
acA640-120um 512 小字节序
acA640-121gm 512 大字节序
acA640-300gc 512 大字节序
acA640-300gm 512 大字节序
acA640-750uc 512 小字节序
acA640-750um 512 小字节序
acA720-290gc 512 大字节序
acA720-290gm 512 大字节序
acA720-520uc 512 小字节序
acA720-520um 512 小字节序
acA780-75gc 512 大字节序
acA780-75gm 512 大字节序
acA800-200gc 512 大字节序
acA800-200gm 512 大字节序
acA800-510uc 512 小字节序
acA800-510um 512 小字节序
acA1280-60gc 512 大字节序
acA1280-60gm 512 大字节序
acA1300-22gc 512 大字节序
acA1300-22gm 512 大字节序
acA1300-30gc 512 大字节序
acA1300-30gm 512 大字节序
acA1300-30uc 512 小字节序
acA1300-30um 512 小字节序
acA1300-60gc 512 大字节序
acA1300-60gm 512 大字节序
acA1300-60gmNIR 512 大字节序
acA1300-75gc 512 大字节序
acA1300-75gm 512 大字节序
acA1300-200uc 512 小字节序
acA1300-200um 512 小字节序
acA1440-73gc 512 大字节序
acA1440-73gm 512 大字节序
acA1440-220uc 512 小字节序
acA1440-220um 512 小字节序
acA1600-20gc 512 大字节序
acA1600-20gm 512 大字节序
acA1600-20uc 512 小字节序
acA1600-20um 512 小字节序
acA1600-60gc 512 大字节序
acA1600-60gm 512 大字节序
acA1920-25gc 512 大字节序
acA1920-25gm 512 大字节序
acA1920-25uc 512 小字节序
acA1920-25um 512 小字节序
acA1920-40gc 512 大字节序
acA1920-40gm 512 大字节序
acA1920-40uc 512 小字节序
acA1920-40ucMED 4096 小字节序
acA1920-40um 512 小字节序
acA1920-40umMED 4096 小字节序
acA1920-48gc 512 大字节序
acA1920-48gm 512 大字节序
acA1920-50gc 512 大字节序
acA1920-50gm 512 大字节序
acA1920-150uc 512 小字节序
acA1920-150um 512 小字节序
acA1920-155uc 512 小字节序
acA1920-155ucMED 4096 小字节序
acA1920-155um 512 小字节序
acA1920-155umMED 4096 小字节序
acA2000-50gc 512 大字节序
acA2000-50gm 512 大字节序
acA2000-50gmNIR 512 大字节序
acA2000-165uc 512 小字节序
acA2000-165um 512 小字节序
acA2000-165umNIR 512 小字节序
acA2040-25gc 512 大字节序
acA2040-25gm 512 大字节序
acA2040-25gmNIR 512 大字节序
acA2040-35gc 512 大字节序
acA2040-35gm 512 大字节序
acA2040-55uc 512 小字节序
acA2040-55um 512 小字节序
acA2040-90uc 512 小字节序
acA2040-90um 512 小字节序
acA2040-90umNIR 512 小字节序
acA2040-120uc 512 小字节序
acA2040-120um 512 小字节序
acA2440-20gc 512 大字节序
acA2440-20gm 512 大字节序
acA2440-35uc 512 小字节序
acA2440-35ucMED 4096 小字节序
acA2440-35um 512 小字节序
acA2440-35umMED 4096 小字节序
acA2440-75uc 512 小字节序
acA2440-75ucMED 4096 小字节序
acA2440-75um 512 小字节序
acA2440-75umMED 4096 小字节序
acA2500-14gc 512 大字节序
acA2500-14gm 512 大字节序
acA2500-14uc 512 小字节序
acA2500-14um 512 小字节序
acA2500-20gc 512 大字节序
acA2500-20gcMED 512 大字节序
acA2500-20gm 512 大字节序
acA2500-20gmMED 512 大字节序
acA2500-60uc 512 小字节序
acA2500-60um 512 小字节序
acA3088-16gc 512 大字节序
acA3088-16gm 512 大字节序
acA3088-57uc 512 小字节序
acA3088-57um 512 小字节序
acA3800-10gc 512 大字节序
acA3800-10gm 512 大字节序
acA3800-14uc 512 小字节序
acA3800-14um 512 小字节序
acA4024-8gc 512 大字节序
acA4024-8gm 512 大字节序
acA4024-29uc 512 小字节序
acA4024-29um 512 小字节序
acA4096-11gc 512 大字节序
acA4096-11gm 512 大字节序
acA4096-30uc 512 小字节序
acA4096-30ucMED 4096 小字节序
acA4096-30um 512 小字节序
acA4096-30umMED 4096 小字节序
acA4096-40uc 512 小字节序
acA4096-40ucMED 4096 小字节序
acA4096-40um 512 小字节序
acA4096-40umMED 4096 小字节序
acA4112-8gc 512 大字节序
acA4112-8gm 512 大字节序
acA4112-20uc 512 小字节序
acA4112-20ucMED 4096 小字节序
acA4112-20um 512 小字节序
acA4112-20umMED 4096 小字节序
acA4112-30uc 512 小字节序
acA4112-30ucMED 4096 小字节序
acA4112-30um 512 小字节序
acA4112-30umMED 4096 小字节序
acA4600-7gc 512 大字节序
acA4600-10uc 512 小字节序
acA5472-5gc 512 大字节序
acA5472-5gm 512 大字节序
acA5472-17uc 512 小字节序
acA5472-17ucMED 4096 小字节序
acA5472-17um 512 小字节序
boA4096-93cc 4096 小字节序
boA4096-93cm 4096 小字节序
boA4112-68cc 4096 小字节序
boA4112-68cm 4096 小字节序
daA1280-54lc 不支持 LUT 功能 不支持 LUT 功能
daA1280-54lm 不支持 LUT 功能 不支持 LUT 功能
daA1280-54uc 不支持 LUT 功能 不支持 LUT 功能
daA1280-54um 不支持 LUT 功能 不支持 LUT 功能
daA1600-60lc 不支持 LUT 功能 不支持 LUT 功能
daA1600-60lm 不支持 LUT 功能 不支持 LUT 功能
daA1600-60uc 不支持 LUT 功能 不支持 LUT 功能
daA1600-60um 不支持 LUT 功能 不支持 LUT 功能
daA1920-15um 不支持 LUT 功能 不支持 LUT 功能
daA1920-30uc 不支持 LUT 功能 不支持 LUT 功能
daA1920-30um 不支持 LUT 功能 不支持 LUT 功能
daA2500-14lc 不支持 LUT 功能 不支持 LUT 功能
daA2500-14lm 不支持 LUT 功能 不支持 LUT 功能
daA2500-14uc 不支持 LUT 功能 不支持 LUT 功能
daA2500-14um 不支持 LUT 功能 不支持 LUT 功能
daA2500-60mc 不支持 LUT 功能 不支持 LUT 功能
daA2500-60mci 不支持 LUT 功能 不支持 LUT 功能
daA4200-30mci 不支持 LUT 功能 不支持 LUT 功能
puA1280-54uc 不支持 LUT 功能 不支持 LUT 功能
puA1280-54um 不支持 LUT 功能 不支持 LUT 功能
puA1600-60uc 不支持 LUT 功能 不支持 LUT 功能
puA1600-60um 不支持 LUT 功能 不支持 LUT 功能
puA1920-30uc 不支持 LUT 功能 不支持 LUT 功能
puA1920-30um 不支持 LUT 功能 不支持 LUT 功能
puA2500-14uc 不支持 LUT 功能 不支持 LUT 功能
puA2500-14um 不支持 LUT 功能 不支持 LUT 功能

示例代码#

// ** Replacing individual LUT entries **
// The following lookup table causes an inversion of the pixel values
// (bright -> dark, dark -> bright)
// Only applies to cameras with a maximum pixel bit depth of 12 bit
for (int i=0; i<4096; i+=8)
{
    camera.LUTIndex.SetValue(i);
    camera.LUTValue.SetValue(4095-i);
}
// Enable the LUT
camera.LUTEnable.SetValue(true);

// ** Replacing all LUT entries in a single operation **
// The following lookup table inverts the pixel values
// (bright -> dark, dark -> bright)
// Only applies to cameras with a maximum pixel bit depth of 12 bit
// Note: This is a simplified code sample.
// You should always check the camera interface and
// the endianness of your system before using LUTValueAll.
// For more information, see the 'LUTValueAll' code sample
// in the C++ Programmer's Guide and Reference Documentation
// delivered with the Basler pylon Camera Software Suite.
uint32_t lutValues[4096];
for (int i=0; i<4096; i+=8)
{
   lutValues[i] = 4095-i;
}
camera.LUTValueAll.SetValue(lutValues);
// Enable the LUT
camera.LUTEnable.SetValue(true);

此示例代码仅适用于 C++ 语言。

您也可以使用 pylon Viewer 轻松设置参数。