Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
4ed07411
O
Opencv
项目概览
Greenplum
/
Opencv
12 个月 前同步成功
通知
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,发现更多精彩内容 >>
未验证
提交
4ed07411
编写于
5月 05, 2023
作者:
A
Alexander Smorkalov
提交者:
GitHub
5月 05, 2023
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #23290 from vovka643:4.x_depricated_backends
4.x deprecated VideoCapture backends
上级
f7bee788
d6dc91b4
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
76 addition
and
0 deletion
+76
-0
modules/videoio/src/cap.cpp
modules/videoio/src/cap.cpp
+40
-0
modules/videoio/src/videoio_registry.cpp
modules/videoio/src/videoio_registry.cpp
+30
-0
modules/videoio/src/videoio_registry.hpp
modules/videoio/src/videoio_registry.hpp
+6
-0
未找到文件。
modules/videoio/src/cap.cpp
浏览文件 @
4ed07411
...
...
@@ -212,6 +212,19 @@ bool VideoCapture::open(const String& filename, int apiPreference, const std::ve
CV_Error_
(
Error
::
StsError
,
(
"could not open '%s'"
,
filename
.
c_str
()));
}
if
(
cv
::
videoio_registry
::
checkDeprecatedBackend
(
apiPreference
))
{
CV_LOG_DEBUG
(
NULL
,
cv
::
format
(
"VIDEOIO(%s): backend is removed from OpenCV"
,
cv
::
videoio_registry
::
getBackendName
((
VideoCaptureAPIs
)
apiPreference
).
c_str
()));
}
else
{
CV_LOG_DEBUG
(
NULL
,
"VIDEOIO: choosen backend does not work or wrong. "
"Please make sure that your computer support chosen backend and OpenCV built "
"with right flags."
);
}
return
false
;
}
...
...
@@ -337,6 +350,19 @@ bool VideoCapture::open(int cameraNum, int apiPreference, const std::vector<int>
CV_Error_
(
Error
::
StsError
,
(
"could not open camera %d"
,
cameraNum
));
}
if
(
cv
::
videoio_registry
::
checkDeprecatedBackend
(
apiPreference
))
{
CV_LOG_DEBUG
(
NULL
,
cv
::
format
(
"VIDEOIO(%s): backend is removed from OpenCV"
,
cv
::
videoio_registry
::
getBackendName
((
VideoCaptureAPIs
)
apiPreference
).
c_str
()));
}
else
{
CV_LOG_DEBUG
(
NULL
,
"VIDEOIO: choosen backend does not work or wrong."
"Please make sure that your computer support chosen backend and OpenCV built "
"with right flags."
);
}
return
false
;
}
...
...
@@ -640,6 +666,20 @@ bool VideoWriter::open(const String& filename, int apiPreference, int fourcc, do
}
}
}
if
(
cv
::
videoio_registry
::
checkDeprecatedBackend
(
apiPreference
))
{
CV_LOG_DEBUG
(
NULL
,
cv
::
format
(
"VIDEOIO(%s): backend is removed from OpenCV"
,
cv
::
videoio_registry
::
getBackendName
((
VideoCaptureAPIs
)
apiPreference
).
c_str
()));
}
else
{
CV_LOG_DEBUG
(
NULL
,
"VIDEOIO: choosen backend does not work or wrong."
"Please make sure that your computer support chosen backend and OpenCV built "
"with right flags."
);
}
return
false
;
}
...
...
modules/videoio/src/videoio_registry.cpp
浏览文件 @
4ed07411
...
...
@@ -183,6 +183,18 @@ static const struct VideoBackendInfo builtin_backends[] =
// dropped backends: MIL, TYZX
};
static
const
struct
VideoDeprecatedBackendInfo
deprecated_backends
[]
=
{
#ifdef _WIN32
{
CAP_VFW
,
"Video for Windows"
},
#endif
{
CAP_QT
,
"QuickTime"
},
{
CAP_UNICAP
,
"Unicap"
},
{
CAP_OPENNI
,
"OpenNI"
},
{
CAP_OPENNI_ASUS
,
"OpenNI"
},
{
CAP_GIGANETIX
,
"GigEVisionSDK"
}
};
bool
sortByPriority
(
const
VideoBackendInfo
&
lhs
,
const
VideoBackendInfo
&
rhs
)
{
return
lhs
.
priority
>
rhs
.
priority
;
...
...
@@ -351,6 +363,16 @@ std::vector<VideoBackendInfo> getAvailableBackends_Writer()
return
result
;
}
bool
checkDeprecatedBackend
(
int
api
)
{
const
int
M
=
sizeof
(
deprecated_backends
)
/
sizeof
(
deprecated_backends
[
0
]);
for
(
size_t
i
=
0
;
i
<
M
;
i
++
)
{
if
(
deprecated_backends
[
i
].
id
==
api
)
return
true
;
}
return
false
;
}
cv
::
String
getBackendName
(
VideoCaptureAPIs
api
)
{
if
(
api
==
CAP_ANY
)
...
...
@@ -362,6 +384,14 @@ cv::String getBackendName(VideoCaptureAPIs api)
if
(
backend
.
id
==
api
)
return
backend
.
name
;
}
const
int
M
=
sizeof
(
deprecated_backends
)
/
sizeof
(
deprecated_backends
[
0
]);
for
(
size_t
i
=
0
;
i
<
M
;
i
++
)
{
if
(
deprecated_backends
[
i
].
id
==
api
)
return
deprecated_backends
[
i
].
name
;
}
return
cv
::
format
(
"UnknownVideoAPI(%d)"
,
(
int
)
api
);
}
...
...
modules/videoio/src/videoio_registry.hpp
浏览文件 @
4ed07411
...
...
@@ -29,11 +29,17 @@ struct VideoBackendInfo {
Ptr
<
IBackendFactory
>
backendFactory
;
};
struct
VideoDeprecatedBackendInfo
{
VideoCaptureAPIs
id
;
const
char
*
name
;
};
namespace
videoio_registry
{
std
::
vector
<
VideoBackendInfo
>
getAvailableBackends_CaptureByIndex
();
std
::
vector
<
VideoBackendInfo
>
getAvailableBackends_CaptureByFilename
();
std
::
vector
<
VideoBackendInfo
>
getAvailableBackends_Writer
();
bool
checkDeprecatedBackend
(
int
api
);
}
// namespace
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录