设置曝光值的通常流程
是:
1. 首先将曝光模式修改为手动曝光。
2. 设置曝光档次或者具体的曝光值。
例1:得到曝光模式,设置为手动曝光模式
int ret;
struct v4l2_control ctrl;
//得到曝光模式
ctrl.id = V4L2_CID_EXPOSURE_AUTO;
ret = ioctl(Handle, VIDIOC_G_CTRL, &ctrl);
if (ret < 0)
{
printf("Get exposure auto Type failed\n");
return V4L2_UTILS_GET_EXPSURE_AUTO_TYPE_ERR;
}
printf("\nGet Exposure Auto Type:[%d]\n", ctrl.value);
// 此时,得到曝光模式。曝光模式分以下几种:
//设置曝光模式为手动模式
int ret;
//设置曝光档次
ctrl.id = V4L2_CID_EXPOSURE;
例3:在设置为手动模式后,再得到和设置曝光绝对值:
int ret;
struct v4l2_control ctrl;
ctrl.id = V4L2_CID_EXPOSURE_ABSOLUTE;
ret = ioctl(handle, VIDIOC_G_CTRL, &ctrl);
if (ret < 0)
{
printf("Set exposure failed (%d)\n", ret);
//return V4L2_UTILS_SET_EXPSURE_ERR;
}
printf("\nGet ABS EXP Success:[%d]\n", ctrl.value);
sleep(1);
//设置曝光绝对值
ctrl.id = V4L2_CID_EXPOSURE_ABSOLUTE;
ctrl.value = 5;
ret = ioctl(handle, VIDIOC_S_CTRL, &ctrl);
if (ret < 0)
{
printf("Set exposure failed (%d)\n", ret);
//return V4L2_UTILS_SET_EXPSURE_ERR;
}
1得
到曝光模式,设置为手动曝光模式
2在设置为手动模式后,再得到和设置曝光绝对值: