Vignetting Correction#
此功能与 pylon Viewer 中的 Vignetting Correction 功能共同发挥作用。
该功能的使用#
渐晕是指图像的边角与中心相比变暗。这是数字成像中的常见效果,而当传感器边缘的像素没有接收到足够的光线时就会发生这种情况。
出现这种情况的原因可能是相对于传感器大小来说,像圈太小了,或者因为光线不会像在传感器中心那样以直角射入传感器。这意味着边缘像素的灰度值较低。
要消除这些伪影,您必须使用 pylon Viewer 创建一组校正数据。下图展示了此过程:
在步骤 1 中,计算所有像素的校正值 (CV) 并将其保存在相机的内存中。在步骤 2 中,如果启用了 VignettingCorrectionMode
参数,则立即删除暗角伪影痕迹。为了消除伪影,将校正值与原始像素值 (OV) 相乘,获得改进的图像(结果值,RV)。
使用 VignettingCorrectionMode
参数,可以打开和关闭校正。仅当您使用 pylon Viewer 创建暗角校正数据后,此参数才可用。
如果您的相机具有与创建暗角校正数据所用的规格相似的规格,则也可以使用其他相机的渐晕校正数据。为此,请按照下列步骤操作。之后,执行 VignettingCorrectionLoad
命令。
信息
- 为了获得最佳结果,请在创建校正数据之前禁用所有非线性功能,例如光源预设或 Gamma 校正。之后,您可以再次启用这些功能。
- 在彩色相机上,在创建校正数据之前选择 Bayer 像素格式。创建校正数据后,您可以选择任何像素格式。
- 执行 vignetting correction 时,重要的是,生成的参考图像仅显示相对于中心中等程度的拐角变暗效果。
- 渐晕受所用镜头、光圈和焦距的影响。如果更换镜头、光圈或焦距,则必须创建一组新的 vignetting correction 数据。
-
在将
BinningSelector
参数设置为Sensor
时更改像素合并系数将禁用 Vignetting Correction。VignettingCorrectionMode
参数将设置为Off
,在以下情况之一发生之前,您将无法再次将其打开:- 您可以将 Binning 系数重置为执行 Vignetting Correction 的系数。
- 您使用新系数再次执行 Vignetting Correction。
示例代码#
ace 2 和 boost R 相机#
/* 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 */
/* Turn vignetting correction on */
errRes = PylonDeviceFeatureFromString(hdev, "BslVignettingCorrectionMode", "On");
CHECK(errRes);
/* Load vignetting correction data */
errRes = PylonDeviceExecuteCommandFeature(hdev, "BslVignettingCorrectionLoad");
CHECK(errRes);
其他相机#
/* 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 */
/* Turn vignetting correction on */
errRes = PylonDeviceFeatureFromString(hdev, "VignettingCorrectionMode", "On");
CHECK(errRes);
/* Load vignetting correction data */
errRes = PylonDeviceExecuteCommandFeature(hdev, "VignettingCorrectionLoad");
CHECK(errRes);
您也可以使用 pylon Viewer 轻松设置参数。