跳转到内容

Sensor Bit Depth#

相机的 Sensor Bit Depth 功能允许您更改图像传感器输出数据的位深。

减小传感器位深度可以提高相机的帧速率。增加传感器位深度可以提高图像质量。

该功能的使用#

为什么使用 Sensor Bit Depth#

传感器位深度定义了图像传感器输出的数据的位深度。相机执行的所有其他图像处理均基于此数据。

设置传感器位深度时,请遵循以下准则:

  • 为了获得最佳图像质量,请将传感器位深度设置为值。
    较高的传感器位深度可以改善图像质量,因为相机的内部图像计算基于更高的位深度。
  • 为了获得最佳性能,请将传感器位深度设置为值。
    较低的传感器位深度可以提高性能,因为传感器的读出时间较短。

Sensor Bit Depth 模式#

Sensor Bit Depth 模式允许您定义是否可以独立于所使用的 pixel format 来设置 sensor bit depth。您可以将 BslSensorBitDepthMode 参数设置为以下值之一:

  • Auto:根据使用的 pixel format 自动调整 sensor bit depth。这是默认设置。例如,如果将 pixel format 设置为 Bayer 12,则 sensor bit depth 将自动设置为 12 位。
  • Manual:可以独立于所用的 pixel format 设置 sensor bit depth。例如,您可以将相机配置为基于 12 位传感器数据输出 8 位图像数据(pixel format = Mono 8,sensor bit depth = 12 位)。

信息

  • On a2A1920, a2A4504, a2A5320, a2A5328, boA4096, boA4112, boA4504, boA5320, boA5328, and dart M cameras, if you set the BslSensorBitDepthMode parameter to Auto and select an 8-bit pixel format (e.g., Mono 8), the sensor bit depth is set to 10 bit. This improves image quality without sacrificing performance.
  • 在 boA4096、boA4112、boA4504、boA5320 和 boA5328 相机上,将传感器位深设置为 8 位会产生以下效果:
    • 全井容量减少了1/4倍
    • 动态范围减小
    • 提高帧速率
  • On boA13440-17cm cameras, the sensor bit depth is limited depending on the pixel format used. The bit depth of the data output by the sensor must always be equal or higher than the format of the image data transmitted. For example, if you configure the camera to output 12-bit image data, the sensor data can only be set to 12 or 14 bit (pixel format = Mono 12, sensor bit depth = 12 bit or 14 bit).

设置 Sensor Bit Depth#

  1. BslSensorBitDepthMode 参数设置为Manual
  2. BslSensorBitDepth 参数设置为所需值。
    例如,将参数设置为 Bpp12,即可将位深度设置为 12 bpp(每像素位数)。

示例代码#

// Set the pixel format to Mono 8
camera.PixelFormat.SetValue(PixelFormat_Mono8);
// Set the sensor bit depth mode to Manual
camera.BslSensorBitDepthMode.SetValue(BslSensorBitDepthMode_Manual);
// Set the sensor bit depth to 8 bit
camera.BslSensorBitDepth.SetValue(BslSensorBitDepth_Bpp8);
INodeMap& nodemap = camera.GetNodeMap();
// Set the pixel format to Mono 8
CEnumParameter(nodemap, "PixelFormat").SetValue("Mono8");
// Set the sensor bit depth mode to Manual
CEnumParameter(nodemap, "BslSensorBitDepthMode").SetValue("Manual");
// Set the sensor bit depth to 8 bit
CEnumParameter(nodemap, "BslSensorBitDepth").SetValue("Bpp8");
// Set the pixel format to Mono 8
camera.Parameters[PLCamera.PixelFormat].SetValue(PLCamera.PixelFormat.Mono8);
// Set the sensor bit depth mode to Manual
camera.Parameters[PLCamera.BslSensorBitDepthMode].SetValue(PLCamera.BslSensorBitDepthMode.Manual);
// Set the sensor bit depth to 8 bit
camera.Parameters[PLCamera.BslSensorBitDepth].SetValue(PLCamera.BslSensorBitDepth.Bpp8);
/* 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 */
/* Set the pixel format to Mono 8 */
errRes = PylonDeviceFeatureFromString(hdev, "PixelFormat", "Mono8");
CHECK(errRes);
/* Set the sensor bit depth mode to Manual */
errRes = PylonDeviceFeatureFromString(hdev, "BslSensorBitDepthMode", "Manual");
CHECK(errRes);
/* Set the sensor bit depth to 8 bit */
errRes = PylonDeviceFeatureFromString(hdev, "BslSensorBitDepth", "Bpp8");
CHECK(errRes);
# Set the pixel format to Mono 8
camera.PixelFormat.Value = "Mono8"
# Set the sensor bit depth mode to Manual
camera.BslSensorBitDepthMode.Value = "Manual"
# Set the sensor bit depth to 8 bit
camera.BslSensorBitDepth.Value = "Bpp8"

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