This feature is similar to the Binning feature, but allows a more granular adjustment of the resolution.
For more information, see the feature description on the Basler website.
Using the Feature#
Why Use Pixel Beyond#
The Pixel Beyond feature works similar to the Binning feature. The camera combines the pixel values of neighboring pixels. This effectively reduces the resolution without changing the field of view.
Depending on your application and the characteristics of the image sensor, this may provide the following benefits:
- Increased response to light
- Reduced amount of data
- Increased frame rate
- Improved signal-to-noise ratio (SNR)
- Ability to simulate the resolution of a different sensor. This allows you to, e.g., replace a discontinued sensor without redesigning your vision system.
While the Binning feature only allows you to reduce the resolution in integer steps (using, e.g., 2x2 or 3x3 binning), the Pixel Beyond feature lets you adjust the resolution using a float scaling value. This provides more flexibility.
Also, unlike with other scaling algorithms, the EMVA data of the resulting images is not affected by the interpolation.
Configuring Pixel Beyond#
To configure Pixel Beyond:
- Make sure that the camera is idle, i.e., not capturing images.
- If your camera is a color camera, set the pixel format to a non-Bayer color pixel format, i.e., to one of the available RGB, BGR, or YUV pixel formats.
- Set the
BslScalingFactorparameter to a value between 1.0 and 2.8.
With a factor of 1.0, the image resolution stays the same. A factor greater than 1.0 reduces the width and height of your images proportionally:
Width* (1 /
BslScalingFactor) = Scaled Width
Height* (1 /
BslScalingFactor) = Scaled Height
Example: Assume the width of the image ROI is set to 1936 and you set the scaling factor to 1.75. The width of the images output by the camera will be 1936 * (1 / 1.75) = 1106.
Depending on the camera model, values are rounded differently. Therefore, the effective image size may differ from the image size calculated.
Calculating the Scaling Factor#
If you want to scale images to a specific size and need to know the scaling factor, use the following formula:
Width / Desired Width =
Because scaling is always performed proportionally, you only need to specify the width.
Example: Assume the image ROI is 1936 x 1216 and you want to scale images to 800 x 600. The appropriate scaling factor is 1936 / 800 = 2.42.
If you want to replace a discontinued sensor with a specific pixel size and need to know the scaling factor, use the following formula:
Previous Sensor Pixel Size / Current Sensor Pixel Size =
Example: Assume you want to replace an ICX424 sensor with a pixel size of 7.4 µm with the IMX392 sensor of the a2A1920-51gcPRO (3.45 µm pixel size). The appropriate scaling factor is 7.4 / 3.45 = 2.14.
// Set scaling to 1.5, i.e., set the resolution // to (1 / 1.5) = 66 % of the original resolution camera.BslScalingFactor.SetValue(1.5); // Disable scaling camera.BslScalingFactor.SetValue(1.0);
INodeMap& nodemap = camera.GetNodeMap(); // Set scaling to 1.5, i.e., set the resolution // to (1 / 1.5) = 66 % of the original resolution CFloatParameter(nodemap, "BslScalingFactor").SetValue(1.5); // Disable scaling CIntegerParameter(nodemap, "BslScalingFactor").SetValue(1.0);
// Set scaling to 1.5, i.e., set the resolution // to (1 / 1.5) = 66 % of the original resolution camera.Parameters[PLCamera.BslScalingFactor].SetValue(1.5); // Disable scaling camera.Parameters[PLCamera.BslScalingFactor].SetValue(1.0);
/* 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 scaling to 1.5, i.e., set the resolution */ /* to (1 / 1.5) = 66 % of the original resolution */ errRes = PylonDeviceSetFloatFeature(hdev, "BslScalingFactor", 1.5); CHECK(errRes); /* Disable scaling */ errRes = PylonDeviceSetFloatFeature(hdev, "BslScalingFactor", 1.0); CHECK(errRes);
You can also use the pylon Viewer to easily set the parameters.