如何手动设置uEye相机的白平衡?

How to manualy set white balance of a uEye camera?

is_SetWhiteBalanceMultipliers() 功能已过时?

一些背景:我使用连接到 Linux 机器的 uEye USB2 相机(来自 IDS)。我需要从相机中获取具有预定义颜色(在预定义场景中产生)的 RGB 图像。例如,我想将 WB 配置为红色 1.25 乘数、绿色 1.0 和蓝色 2.0 乘数。 对于此任务,我在 Linux(头文件 ueye.h)上使用 uEye SDK。 手册(A:Camera basics > Camera parameters)指出 is_SetWhiteBalanceMultipliers() 函数已过时,建议改用 is_SetAutoParameter() 函数。禁用自动白平衡很容易(is_SetAutoParameter( hCam, IS_SET_ENABLE_AUTO_WHITEBALANCE, 0, 0),但我很难找到配置 red/green/blue 倍频器的方法。参数 IS_SET_AUTO_WB_OFFSETIS_SET_AUTO_WB_GAIN_RANGE 仅在启用自动白平衡,禁用时不执行任何操作。
如有任何建议,我将不胜感激!

我遇到了同样的问题。我认为您可以使用直接传递主要、红色、绿色和蓝色增益的函数“is_SetHardwareGain”来实现旧结果。就我而言,我在这样做之前禁用了白平衡,只是为了确保它能正常工作。在此示例中,我想将值设置为 RGB 增益 = [8%, 0%, 32%] 并将主增益设置为 0%(不要与增益因子混淆,0% 通常对应于 1x 增益因子):

double param1, param2; param1=0;
is_SetColorCorrection (hCam, IS_CCOR_DISABLE, &param1); //Disables the color fitler correction matrix
flagIDS = is_SetAutoParameter (hCam, IS_SET_ENABLE_AUTO_WHITEBALANCE, &param1, &param2);
param1=WB_MODE_DISABLE;
flagIDS = is_SetAutoParameter (hCam, IS_SET_ENABLE_AUTO_SENSOR_WHITEBALANCE, &param1, &param2);
flagIDS = is_SetHardwareGain (hCam, 0, 8, 0, 32);