Digital Shift#
这会增加图像的亮度。如果您的相机不支持数字移位功能,则可以使用 Gain 功能达到类似的效果。
该功能的使用#
运作原理#
将数字移位因数配置为 n 会导致所有像素值逻辑左移 n。这具有将所有像素值乘以 2n 的效果。
如果结果像素值大于当前像素格式可能达到的最大值(例如,对于 12 位像素格式为 4095),则将该值设置为最大值。
如需更多信息,请参见下面的示例。
配置 Digital Shift#
要配置数字移位因数,请为 DigitalShift
参数输入所需的值。
默认情况下,该参数设置为 0,即禁用数字移位。
示例#
示例 1:数字移位 1 位,12 位图像数据#
假设您在使用 12 位像素格式的相机上输入了数字移位因数 1。则会产生以下效果:
- 每个 12 位图像数据字中的最低有效位设置为 0。
- 像素值乘以 21 = 2。
- 由于最低有效位设置为 0,因此相机仅发送偶数像素值,例如 2、4、6、8、10 等。
示例 2:数字移位 2 位,12 位图像数据#
假设您在使用 12 位像素格式的相机上输入了数字移位因数 2。则会产生以下效果:
- 每个 12 位图像数据字中的最低 2 位有效位设置为 0。
- 像素值乘以 22 = 4。
- 因为两个最低有效位设置为 0,所以相机仅每四个像素值发送一次,例如 4、8、12、16、20 等。
示例 3:数字移位 2 位,8 位图像数据#
假设相机的最大像素位深度为 12 位,但当前使用的是 8 位像素格式。
在这种情况下,照相机首先对 12 位图像数据执行数字移位计算。然后,相机丢弃 4 个最低有效位并发送 8 个最高有效位:
信息
在以下相机型号上,如果设置了 8 位像素格式,则无论最大像素位深度如何,都会对 10 位图像数据执行数字移位:acA720-290gm/gc、acA1440-73gm/gc、acA1920-40gm/gc、acA1920-50gm/gc、acA1440-220um/uc、acA1920-40um/uc、acA1920-155um/uc、acA2040-120um/uc、acA2440-75um/uc、acA4096-40um/uc、acA4112-30um/uc。
示例 4:数字移位 1 位,12 位图像数据,高值#
假设您的相机使用的是 12 位像素格式。还要假设您的其中一个原始像素值是 2839:
如果您对此像素值应用数字移位 1,则结果值将大于 12 位像素格式的最大可能值(4096 + 1024 + 512 + 32 + 8 + 4 + 2 = 5678;12 位格式的最大值:4095)。在这种情况下,该值设置为最大值,即所有位均设置为 1:
信息
因此,请确保不要对成像方案应用过高的数字移位因数。否则,图像中的所有亮区都将设置为白色,即图像信息将会丢失。
外部链接#
示例代码#
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK; /* Return value of pylon methods */
/* Disable digital shift */
errRes = PylonDeviceSetIntegerFeature(hdev, "DigitalShift", 0);
CHECK(errRes);
/* Enable digital shift by 2 */
errRes = PylonDeviceSetIntegerFeature(hdev, "DigitalShift", 2);
CHECK(errRes);
您也可以使用 pylon Viewer 轻松设置参数。