跳转到内容

Shutter Mode#

相机的 Shutter Mode 功能可让您确定或配置相机电子快门的操作模式。

快门模式是指拍摄和处理图像数据的方式。具体有哪些快门模式可用取决于成像传感器的设计。

该功能的使用#

确定快门模式#

要确定当前的快门模式,请获取 ShutterMode 参数的值。该参数可为如下值:

配置快门模式#

如果您的相机型号上多种快门模式可用,则可以根据需要选择快门模式。

为此,请将 ShutterMode 参数设置为以下值:

优点和缺点#

Shutter Mode 优点 缺点
全局快门模式 非常适合拍摄快速移动的对象 较高的环境噪声
滚动快门模式 较低的环境噪声 如果拍摄的是快速移动的对象,可能会发生图像失真。
全局重置释放快门模式 较低的环境噪声
非常适合拍摄快速移动的对象
必须使用闪光灯。

可用快门模式#

根据您的相机型号,可以使用以下快门模式:

全局快门模式#

在全局快门模式下的每次图像采集期间,所有传感器像素均同时开始曝光,也会同时停止曝光。曝光结束后,立即开始读出像素数据,并逐行进行处理,直到读取了所有像素数据为止。如果要拍摄快速移动的对象,或者在拍摄图像时相机快速移动,则此功能特别有用。

在全局快门模式下工作的相机可以提供曝光激活输出信号。信号会在曝光开始时转为高电平,曝光结束时转为低电平。

传感器读出时间是所有行读出时间的总和。因此,传感器的读取时间受图像 ROI 高度的影响。您可以通过检查相机的 SensorReadoutTime 参数的值来确定读出时间。

在部分相机机型上,Sensor Readout Mode 功能可用。此功能使您可以缩短传感器读出时间。

全局快门模式

滚动快门模式#

在滚动快门模式下,相机会逐一对像素行进行曝光,各行之间存在时间偏移 (tRow)。使用此方法时,环境噪声通常明显低于使用全局快门方法。

触发帧开始时,相机将重置第一行并开始对其进行曝光。对于大多数相机,此行是图像 ROI 的第一行。

不久之后 (= 1 x tRow),相机将重置第二行并开始曝光该行。再过一小段时间后 (= 1 x tRow),相机将重置第三行并开始曝光该行。

这一直持续到最后一个像素行为止。对于大多数相机,此行是图像 ROI 的最后一行。

tRow 的长度因相机型号而异

滚动快门模式

每一行的曝光时间结束时,系统都会读出各行的像素值。所有行的曝光时间都相同。因为每行的读出时间也是 tRow,所以读出结束时的时间偏移量与曝光开始时的时间偏移量相同。

传感器读出时间是所有行读出时间的总和:tRow x 图像 ROI 高度

因此,传感器的读出时间还取决于图像 ROI 的高度。要确定读出时间,请检查相机的 SensorReadoutTime 参数的值。

影响帧周期的其他因素

除了曝光时间和传感器读出时间以外,还有其他一些因素会影响帧周期,例如,为下一次采集准备传感器所需的时间。

这些其他因素因相机型号和配置而异。因此,Basler 建议计算帧周期。为此,请检查相机的 ResultingFrameRate 参数值并取其倒数:

1/最终帧速率

这考虑了所有影响因素。

可能的图像失真(滚动快门效应)

如果在滚动快门模式下拍摄图像期间,拍摄对象或相机发生快速移动,则可能会发生图像失真。这也称为滚动快门效应

其原因在于各行开始曝光之间的时间偏移量。

为防止滚动快门效应,Basler 建议使用闪光灯。大多数相机都可以提供闪烁窗口输出信号,以方便使用闪光灯。

曝光激活信号

如果您的相机型号提供了曝光激活输出信号,并且相机配置为滚动快门模式,则当Line 1 的曝光时间开始时,曝光激活信号会转为高电平,而最后一行的曝光时间结束时,曝光激活信号会转为低电平。这意味着信号宽度大于曝光时间。

全局重置释放快门模式#

全局重置释放 (GRR) 快门模式是滚动快门模式的变体。它结合了全局和滚动快门模式的优点

在 GRR 快门模式下,传感器中的所有像素同时开始曝光。但是,在曝光结束时,一行到另一行之间存在时间偏移 (tRow)。

tRow 值与滚动快门模式相同,并且因相机型号而异

全局重置释放快门模式

如果相机在 GRR 快门模式下工作,则必须使用闪光灯。否则,由于各行的曝光时间不同,所采集到的图像亮度可能从顶端到底端有显著变化。另外,当您采集快速移动对象的图像时,各行的曝光结束时间不同会导致时间偏移,图像可能会失真。

大多数相机都可以提供闪烁窗口输出信号,以方便使用闪光灯。

影响帧周期的其他因素

→ 请参阅上面的“影响帧周期的其他因素”部分。

附加参数#

根据您的相机型号,可能还可以使用 GlobalResetReleaseModeEnable 参数。

  • 如果将该参数设置为 true,相机会将 ShutterMode 参数设置为 GlobalResetRelease 并启用全局重置释放快门模式
  • 如果将该参数设置为 false,相机会将 ShutterMode 参数设置为 Rolling 并启用滚动快门模式

详情#

显示所有相机型号

相机型号 可用快门模式 时间偏移量 tRow [µs] 附加参数
a2A1920-51gcBAS 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能
a2A1920-51gcPRO 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能
a2A1920-51gmBAS 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能
a2A1920-51gmPRO 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能
a2A1920-160ucBAS 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能
a2A1920-160ucPRO 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能
a2A1920-160umBAS 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能
a2A1920-160umPRO 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能
a2A2590-22gcBAS 滚动 7
a2A2590-22gcPRO 滚动 7
a2A2590-22gmBAS 滚动 7
a2A2590-22gmPRO 滚动 7
a2A2590-60ucBAS 滚动 7
a2A2590-60ucPRO 滚动 7
a2A2590-60umBAS 滚动 7
a2A2590-60umPRO 滚动 7
a2A3840-13gcBAS 滚动 7
a2A3840-13gcPRO 滚动 7
a2A3840-13gmBAS 滚动 7
a2A3840-13gmPRO 滚动 7
a2A3840-45ucBAS 滚动 7
a2A3840-45ucPRO 滚动 7
a2A3840-45umBAS 滚动 7
a2A3840-45umPRO 滚动 7
acA640-90gc 全局 -
acA640-90gm 全局 -
acA640-90uc 全局 -
acA640-90um 全局 -
acA640-120gc 全局 -
acA640-120gm 全局 -
acA640-120uc 全局 -
acA640-120um 全局 -
acA640-121gm 全局 -
acA640-300gc 全局 -
acA640-300gm 全局 -
acA640-750uc 全局 -
acA640-750um 全局 -
acA720-290gc 全局 -
acA720-290gm 全局 -
acA720-520uc 全局 -
acA720-520um 全局 -
acA780-75gc 全局 -
acA780-75gm 全局 -
acA800-200gc 全局 -
acA800-200gm 全局 -
acA800-510uc 全局 -
acA800-510um 全局 -
acA1280-60gc 滚动 14
acA1280-60gm 滚动 14
acA1300-22gc 全局 -
acA1300-22gm 全局 -
acA1300-30gc 全局 -
acA1300-30gm 全局 -
acA1300-30uc 全局 -
acA1300-30um 全局 -
acA1300-60gc 全局
滚动
全局重置释放
14
acA1300-60gm 全局
滚动
全局重置释放
14
acA1300-60gmNIR 全局
滚动
全局重置释放
14
acA1300-75gc 全局 -
acA1300-75gm 全局 -
acA1300-200uc 全局 -
acA1300-200um 全局 -
acA1440-73gc 全局 -
acA1440-73gm 全局 -
acA1440-220uc 全局 -
acA1440-220um 全局 -
acA1600-20gc 全局 -
acA1600-20gm 全局 -
acA1600-20uc 全局 -
acA1600-20um 全局 -
acA1600-60gc 全局
滚动
全局重置释放
8 位像素格式:13
12 位压缩像素格式:17
12 位像素格式:17
acA1600-60gm 全局
滚动
全局重置释放
8 位像素格式:13
12 位压缩像素格式:17
12 位像素格式:17
acA1920-25gc 滚动
全局重置释放
35 GlobalResetReleaseModeEnable
acA1920-25gm 滚动
全局重置释放
35 GlobalResetReleaseModeEnable
acA1920-25uc 滚动
全局重置释放
35
acA1920-25um 滚动
全局重置释放
35
acA1920-40gc 全局 -
acA1920-40gm 全局 -
acA1920-40uc 全局 -
acA1920-40ucMED 全局 -
acA1920-40um 全局
acA1920-40umMED 全局 -
acA1920-48gc 全局 -
acA1920-48gm 全局 -
acA1920-50gc 全局 -
acA1920-50gm 全局 -
acA1920-150uc 全局 -
acA1920-150um 全局 -
acA1920-155uc 全局 -
acA1920-155ucMED 全局 -
acA1920-155um 全局 -
acA1920-155umMED 全局 -
acA2000-50gc 全局 -
acA2000-50gm 全局 -
acA2000-50gmNIR 全局 -
acA2000-165uc 全局 -
acA2000-165um 全局 -
acA2000-165umNIR 全局 -
acA2040-25gc 全局 -
acA2040-25gm 全局 -
acA2040-25gmNIR 全局 -
acA2040-35gc 全局 -
acA2040-35gm 全局 -
acA2040-55uc 全局 -
acA2040-55um 全局 -
acA2040-90uc 全局 -
acA2040-90um 全局 -
acA2040-90umNIR 全局 -
acA2040-120uc 全局 -
acA2040-120um 全局 -
acA2440-20gc 全局 -
acA2440-20gm 全局 -
acA2440-35uc 全局 -
acA2440-35ucMED 全局 -
acA2440-35um 全局 -
acA2440-35umMED 全局 -
acA2440-75uc 全局 -
acA2440-75ucMED 全局 -
acA2440-75um 全局 -
acA2440-75umMED 全局 -
acA2500-14gc 滚动
全局重置释放
35 GlobalResetReleaseModeEnable
acA2500-14gm 滚动
全局重置释放
35 GlobalResetReleaseModeEnable
acA2500-14uc 滚动
全局重置释放
35
acA2500-14um 滚动
全局重置释放
35
acA2500-20gc 全局 -
acA2500-20gcMED 全局 -
acA2500-20gm 全局 -
acA2500-20gmMED 全局 -
acA2500-60uc 全局 -
acA2500-60um 全局 -
acA3088-16gc 滚动
全局重置释放
8 位像素格式:25
12 位压缩像素格式:25
12 位像素格式:25
acA3088-16gm 全局 -
acA3088-57uc 滚动
全局重置释放
8 位像素格式:8
12 位压缩像素格式:8
12 位像素格式:8
acA3088-57um 滚动
全局重置释放
8 位像素格式:8
12 位压缩像素格式:8
12 位像素格式:8
acA3800-10gc 滚动
全局重置释放
8 位像素格式:31.6
12 位压缩像素格式:36.4
12 位像素格式:39.6
acA3800-10gm 滚动
全局重置释放
8 位像素格式:31.6
12 位压缩像素格式:36.4
12 位像素格式:39.6
acA3800-14uc 滚动
全局重置释放
8 位像素格式:24.725
12 位压缩像素格式:28.475
12 位像素格式:30.975
acA3800-14um 滚动
全局重置释放
8 位像素格式:24.725
12 位压缩像素格式:28.475
12 位像素格式:30.975
acA4024-8gc 滚动a
全局重置释放a
8 位像素格式:35
12 位压缩像素格式:35
12 位像素格式:35
acA4024-8gm 滚动a
全局重置释放a
8 位像素格式:35
12 位压缩像素格式:35
12 位像素格式:35
acA4024-29uc 滚动a
全局重置释放a
8 位像素格式:10
12 位压缩像素格式:12
12 位像素格式:12
acA4024-29um 滚动a
全局重置释放a
8 位像素格式:10
12 位压缩像素格式:12
12 位像素格式:12
acA4096-11gc 全局 -
acA4096-11gm 全局 -
acA4096-30uc 全局 -
acA4096-30ucMED 全局 -
acA4096-30um 全局 -
acA4096-30umMED 全局 -
acA4096-40uc 全局 -
acA4096-40ucMED 全局 -
acA4096-40um 全局 -
acA4096-40umMED 全局 -
acA4112-8gc 全局 -
acA4112-8gm 全局 -
acA4112-20uc 全局 -
acA4112-20ucMED 全局 -
acA4112-20um 全局 -
acA4112-20umMED 全局 -
acA4112-30uc 全局 -
acA4112-30ucMED 全局 -
acA4112-30um 全局 -
acA4112-30umMED 全局 -
acA4600-7gc 滚动
全局重置释放
8 位像素格式:39.4
12 位压缩像素格式:43.4
12 位像素格式:47.4
acA4600-10uc 滚动
全局重置释放
8 位像素格式:30.75
12 位压缩像素格式:33.875
12 位像素格式:37
acA5472-5gc 滚动a
全局重置释放a
8 位像素格式:52
12 位压缩像素格式:55
12 位像素格式:55
acA5472-5gm 滚动a
全局重置释放a
8 位像素格式:52
12 位压缩像素格式:55
12 位像素格式:55
acA5472-17uc 滚动a
全局重置释放a
8 位像素格式:13
12 位压缩像素格式:16
12 位像素格式:16
acA5472-17ucMED 滚动a
全局重置释放a
8 位像素格式:13
12 位压缩像素格式:16
12 位像素格式:16
acA5472-17um 滚动a
全局重置释放a
8 位像素格式:13
12 位压缩像素格式:16
12 位像素格式:16
boA4096-93cc 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能
boA4096-93cm 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能
boA4112-68cc 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能
boA4112-68cm 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能
daA1280-54lc 全局 不适用
daA1280-54lm 全局 不适用
daA1280-54uc 全局 不适用
daA1280-54um 全局 不适用
daA1600-60lc 全局 不适用
daA1600-60lm 全局 不适用
daA1600-60uc 全局 不适用
daA1600-60um 全局 不适用
daA1920-15um 滚动
全局重置释放
不适用
daA1920-30uc 滚动
全局重置释放
不适用
daA1920-30um 滚动
全局重置释放
不适用
daA2500-14lc 滚动
全局重置释放
不适用
daA2500-14lm 滚动
全局重置释放
不适用
daA2500-14uc 滚动
全局重置释放
不适用
daA2500-14um 滚动
全局重置释放
不适用
daA2500-60mc 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能
daA2500-60mci 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能
daA4200-30mci 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能 不支持 Shutter Mode 功能
puA1280-54uc 全局 不适用
puA1280-54um 全局 不适用
puA1600-60uc 全局 不适用
puA1600-60um 全局 不适用
puA1920-30uc 滚动
全局重置释放
不适用
puA1920-30um 滚动
全局重置释放
不适用
puA2500-14uc 滚动
全局重置释放
不适用
puA2500-14um 滚动
全局重置释放
不适用

  1. 无论图像 ROI 设置如何,曝光的第一行始终是传感器的第一行。这可能会导致图像 ROI 曝光开始延迟。而且,无论图像 ROI 设置如何,曝光的最后一行始终是传感器的最后一行。

示例代码#

dart 和 pulse 相机#

// Determine the current sensor shutter mode
SensorShutterModeEnums shutterMode = camera.SensorShutterMode.GetValue();
// Set the sensor shutter mode to rolling
camera.SensorShutterMode.SetValue(SensorShutterMode_Rolling);
// Set the sensor shutter mode to global reset release
camera.SensorShutterMode.SetValue(SensorShutterMode_GlobalResetRelease);
INodeMap& nodemap = camera.GetNodeMap();
// Determine the current sensor shutter mode
String_t shutterMode = CEnumerationPtr(nodemap.GetNode("SensorShutterMode"))->ToString();
// Set the sensor shutter mode to rolling
CEnumerationPtr(nodemap.GetNode("SensorShutterMode"))->FromString("Rolling");
// Set the sensor shutter mode to global reset release
CEnumerationPtr(nodemap.GetNode("SensorShutterMode"))->FromString("GlobalResetRelease");
INodeMap& nodemap = camera.GetNodeMap();
// Determine the current sensor shutter mode
String_t shutterMode = CEnumParameter(nodemap, "SensorShutterMode").GetValue();
// Set the sensor shutter mode to rolling
CEnumParameter(nodemap, "SensorShutterMode").SetValue("Rolling");
// Set the sensor shutter mode to global reset release
CEnumParameter(nodemap, "SensorShutterMode").SetValue("GlobalResetRelease");
// Determine the current sensor shutter mode
string shutterMode = camera.Parameters[PLCamera.SensorShutterMode].GetValue();
// Set the sensor shutter mode to rolling
camera.Parameters[PLCamera.SensorShutterMode].SetValue(PLCamera.SensorShutterMode.Rolling);
// Set the sensor shutter mode to global reset release
camera.Parameters[PLCamera.SensorShutterMode].SetValue(PLCamera.SensorShutterMode.GlobalResetRelease);
// Determine the current sensor shutter mode
string shutterMode = Pylon.DeviceFeatureToString(hdev, "SensorShutterMode");
// Set the sensor shutter mode to rolling
Pylon.DeviceFeatureFromString(hdev, "SensorShutterMode", "Rolling");
// Set the sensor shutter mode to global reset release
Pylon.DeviceFeatureFromString(hdev, "SensorShutterMode", "GlobalResetRelease");
size_t len = 0;
char shutterMode_str[64] = {0};
/* Determine the current sensor shutter mode */
len = sizeof(shutterMode_str);
errRes = PylonDeviceFeatureToString(hdev, "SensorShutterMode", shutterMode_str, &len);
CHECK(errRes);
/* Set the sensor shutter mode to rolling */
errRes = PylonDeviceFeatureFromString(hdev, "SensorShutterMode", "Rolling");
CHECK(errRes);
/* Set the sensor shutter mode to global reset release */
errRes = PylonDeviceFeatureFromString(hdev, "SensorShutterMode", "GlobalResetRelease");
CHECK(errRes);

其他相机#

// Determine the current shutter mode
ShutterModeEnums shutterMode = camera.ShutterMode.GetValue();
// Set the shutter mode to rolling
camera.ShutterMode.SetValue(ShutterMode_Rolling);
// Set the shutter mode to global reset release
camera.ShutterMode.SetValue(ShutterMode_GlobalResetRelease);
INodeMap& nodemap = camera.GetNodeMap();
// Determine the current shutter mode
String_t shutterMode = CEnumerationPtr(nodemap.GetNode("ShutterMode"))->ToString();
// Set the shutter mode to rolling
CEnumerationPtr(nodemap.GetNode("ShutterMode"))->FromString("Rolling");
// Set the shutter mode to global reset release
CEnumerationPtr(nodemap.GetNode("ShutterMode"))->FromString("GlobalResetRelease");
INodeMap& nodemap = camera.GetNodeMap();
// Determine the current shutter mode
String_t shutterMode = CEnumParameter(nodemap, "ShutterMode").GetValue();
// Set the shutter mode to rolling
CEnumParameter(nodemap, "ShutterMode").SetValue("Rolling");
// Set the shutter mode to global reset release
CEnumParameter(nodemap, "ShutterMode").SetValue("GlobalResetRelease");
// Determine the current shutter mode
string shutterMode = camera.Parameters[PLCamera.ShutterMode].GetValue();
// Set the shutter mode to rolling
camera.Parameters[PLCamera.ShutterMode].SetValue(PLCamera.ShutterMode.Rolling);
// Set the shutter mode to global reset release
camera.Parameters[PLCamera.ShutterMode].SetValue(PLCamera.ShutterMode.GlobalResetRelease);
// Determine the current shutter mode
string shutterMode = Pylon.DeviceFeatureToString(hdev, "ShutterMode");
// Set the shutter mode to rolling
Pylon.DeviceFeatureFromString(hdev, "ShutterMode", "Rolling");
// Set the shutter mode to global reset release
Pylon.DeviceFeatureFromString(hdev, "ShutterMode", "GlobalResetRelease");
size_t len = 0;
char shutterMode_str[64] = {0};
/* Determine the current shutter mode */
len = sizeof(shutterMode_str);
errRes = PylonDeviceFeatureToString(hdev, "ShutterMode", shutterMode_str, &len);
CHECK(errRes);
/* Set the shutter mode to rolling */
errRes = PylonDeviceFeatureFromString(hdev, "ShutterMode", "Rolling");
CHECK(errRes);
/* Set the shutter mode to global reset release */
errRes = PylonDeviceFeatureFromString(hdev, "ShutterMode", "GlobalResetRelease");
CHECK(errRes);

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