我需要手动(使用代码)更改相机的焦点。 实际上我需要使用c ++程序来改变罗技凸轮的焦点。 作为我的知识,没有办法使用opencv控制相机。我听说Windows sdk允许使用代码更改相机的焦点。任何人都可以帮我这样做吗?
罗技相机具有自动变焦选项。我需要编写一个程序来通过代码更改缩放。
谢谢。 最好的问候
答案 0 :(得分:0)
一种方法(至少在Linux上)是Video for linux。
打开一个id为dev_id为
的凸轮cv::VideoCapture cap = VideoCapture( dev_id+CV_CAP_V4L2);
然后可以设置焦点:
/// turn of autofocus
struct v4l2_control ctrl;
ctrl.id = V4L2_CID_FOCUS_AUTO;
ctrl.value = 0;
int ret = ioctl(dev, VIDIOC_S_CTRL, &ctrl);
if (ret < 0) {
printf("unable to disable AutoFocus %s (%d).\n",
strerror(errno), errno);
return false;
}
/// set focus manually
ctrl.id = V4L2_CID_FOCUS_ABSOLUTE;
ctrl.value = focus;
ret = ioctl(dev, VIDIOC_S_CTRL, &ctrl);
if (ret < 0) {
printf("unable to set absolute Focus %s (%d).\n",
strerror(errno), errno);
return false;
这与L920完美配合。