Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
b33853c5
O
Opencv
项目概览
Greenplum
/
Opencv
10 个月 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
b33853c5
编写于
8月 25, 2015
作者:
V
Vadim Pisarevsky
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #4199 from AVshokurov:master
上级
587b0cc7
4691d98e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
45 addition
and
0 deletion
+45
-0
modules/videoio/src/cap_libv4l.cpp
modules/videoio/src/cap_libv4l.cpp
+45
-0
未找到文件。
modules/videoio/src/cap_libv4l.cpp
浏览文件 @
b33853c5
...
...
@@ -1433,6 +1433,30 @@ static double icvGetPropertyCAM_V4L (CvCaptureCAM_V4L* capture,
sprintf
(
name
,
"Exposure"
);
capture
->
control
.
id
=
V4L2_CID_EXPOSURE
;
break
;
case
CV_CAP_PROP_FOCUS
:
{
struct
v4l2_control
c
;
int
v4l2_min
;
int
v4l2_max
;
//we need to make sure that the autofocus is switch off, if available.
capture
->
control
.
id
=
V4L2_CID_FOCUS_AUTO
;
v4l2_min
=
v4l2_get_ctrl_min
(
capture
,
capture
->
control
.
id
);
v4l2_max
=
v4l2_get_ctrl_max
(
capture
,
capture
->
control
.
id
);
if
(
!
((
v4l2_min
==
-
1
)
&&
(
v4l2_max
==
-
1
))
)
{
//autofocus capability is supported, switch it off.
c
.
id
=
capture
->
control
.
id
;
c
.
value
=
0
;
//off
if
(
v4l2_ioctl
(
capture
->
deviceHandle
,
VIDIOC_S_CTRL
,
&
c
)
!=
0
){
if
(
errno
!=
ERANGE
)
{
fprintf
(
stderr
,
"VIDEOIO ERROR: V4L2: Failed to set control
\"
%d
\"
(FOCUS_AUTO): %s (value %d)
\n
"
,
c
.
id
,
strerror
(
errno
),
c
.
value
);
return
-
1
;
}
}
}
//lack of support should not be considerred an error.
sprintf
(
name
,
"Focus"
);
capture
->
control
.
id
=
V4L2_CID_FOCUS_ABSOLUTE
;
break
;
}
default:
sprintf
(
name
,
"<unknown property string>"
);
capture
->
control
.
id
=
property_id
;
...
...
@@ -1650,6 +1674,27 @@ static int icvSetControl (CvCaptureCAM_V4L* capture, int property_id, double val
sprintf
(
name
,
"Exposure"
);
capture
->
control
.
id
=
V4L2_CID_EXPOSURE
;
break
;
case
CV_CAP_PROP_FOCUS
:
//we need to make sure that the autofocus is switch off, if available.
capture
->
control
.
id
=
V4L2_CID_FOCUS_AUTO
;
v4l2_min
=
v4l2_get_ctrl_min
(
capture
,
capture
->
control
.
id
);
v4l2_max
=
v4l2_get_ctrl_max
(
capture
,
capture
->
control
.
id
);
if
(
!
((
v4l2_min
==
-
1
)
&&
(
v4l2_max
==
-
1
))
)
{
//autofocus capability is supported, switch it off.
c
.
id
=
capture
->
control
.
id
;
c
.
value
=
0
;
//off
if
(
v4l2_ioctl
(
capture
->
deviceHandle
,
VIDIOC_S_CTRL
,
&
c
)
!=
0
){
if
(
errno
!=
ERANGE
)
{
fprintf
(
stderr
,
"VIDEOIO ERROR: V4L2: Failed to set control
\"
%d
\"
(FOCUS_AUTO): %s (value %d)
\n
"
,
c
.
id
,
strerror
(
errno
),
c
.
value
);
return
-
1
;
}
}
}
//lack of support should not be considerred an error.
//now set the manual focus
sprintf
(
name
,
"Focus"
);
capture
->
control
.
id
=
V4L2_CID_FOCUS_ABSOLUTE
;
break
;
default:
sprintf
(
name
,
"<unknown property string>"
);
capture
->
control
.
id
=
property_id
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录