我想在linux中使用v4l2 lib来改变虹膜,曝光时间和iso参数。直到现在我都没用过那样的东西。 我发现我必须改变这个:V4L2_CID_EXPOSURE_AUTO;我会用这部分代码做到这一点:
// open capture
int descriptor = v4l2_open("/dev/video0", O_RDWR);
// manual exposure control
v4l2_control c;
c.id = V4L2_CID_EXPOSURE_AUTO;
c.value = V4L2_EXPOSURE_MANUAL;
if(v4l2_ioctl(descriptor, VIDIOC_S_CTRL, &c) == 0)
cout << "success";
之后我想改变这三个相机参数:光圈,曝光时间和iso。
但是我找不到......
看看v4l2 extended control
将V4L2_CID_EXPOSURE_AUTO参数设置为V4L2_EXPOSURE_MANUAL后,您可以使用V4L2_CID_EXPOSURE_ABSOLUTE和V4L2_CID_IRIS_ABSOLUTE来控制曝光和光圈。
要设置iso参数,需要将V4L2_CID_ISO_SENSITIVITY_AUTO设置为V4L2_CID_ISO_SENSITIVITY_MANUAL,然后可以设置V4L2_CID_ISO_SENSITIVITY。
您可以查看提供命令行工具v4l-utils来控制v4l2设备的v4l2-ctl
。