Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
0f4b27c3
O
Opencv
项目概览
Greenplum
/
Opencv
11 个月 前同步成功
通知
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,发现更多精彩内容 >>
提交
0f4b27c3
编写于
3月 11, 2021
作者:
A
Anastasiya Pronina
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Upstream fixes from release
上级
fbb38cc2
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
23 addition
and
12 deletion
+23
-12
modules/gapi/include/opencv2/gapi/media.hpp
modules/gapi/include/opencv2/gapi/media.hpp
+12
-0
modules/gapi/src/api/media.cpp
modules/gapi/src/api/media.cpp
+4
-0
modules/gapi/src/backends/ie/giebackend.cpp
modules/gapi/src/backends/ie/giebackend.cpp
+7
-12
未找到文件。
modules/gapi/include/opencv2/gapi/media.hpp
浏览文件 @
0f4b27c3
...
...
@@ -30,9 +30,21 @@ public:
View
access
(
Access
)
const
;
cv
::
GFrameDesc
desc
()
const
;
// Cast underlying MediaFrame adapter to the particular adapter type,
// return nullptr if underlying type is different
template
<
typename
T
>
T
*
get
()
const
{
static_assert
(
std
::
is_base_of
<
IAdapter
,
T
>::
value
,
"T is not derived from cv::MediaFrame::IAdapter!"
);
auto
*
adapter
=
getAdapter
();
GAPI_Assert
(
adapter
!=
nullptr
);
return
dynamic_cast
<
T
*>
(
adapter
);
}
private:
struct
Priv
;
std
::
shared_ptr
<
Priv
>
m
;
IAdapter
*
getAdapter
()
const
;
};
template
<
class
T
,
class
...
Args
>
...
...
modules/gapi/src/api/media.cpp
浏览文件 @
0f4b27c3
...
...
@@ -26,6 +26,10 @@ cv::MediaFrame::View cv::MediaFrame::access(Access code) const {
return
m
->
adapter
->
access
(
code
);
}
cv
::
MediaFrame
::
IAdapter
*
cv
::
MediaFrame
::
getAdapter
()
const
{
return
m
->
adapter
.
get
();
}
cv
::
MediaFrame
::
View
::
View
(
Ptrs
&&
ptrs
,
Strides
&&
strs
,
Callback
&&
cb
)
:
ptr
(
std
::
move
(
ptrs
))
,
stride
(
std
::
move
(
strs
))
...
...
modules/gapi/src/backends/ie/giebackend.cpp
浏览文件 @
0f4b27c3
...
...
@@ -126,25 +126,20 @@ inline IE::TensorDesc toIE(const cv::Mat &mat, cv::gapi::ie::TraitAs hint) {
if
(
sz
.
dims
()
==
2
&&
hint
==
cv
::
gapi
::
ie
::
TraitAs
::
IMAGE
)
{
// NB: This logic is mainly taken from IE samples
const
size_t
pixsz
=
CV_ELEM_SIZE1
(
mat
.
type
());
const
size_t
channels
=
mat
.
channels
();
const
size_t
height
=
mat
.
size
().
height
;
const
size_t
width
=
mat
.
size
().
width
;
const
size_t
strideH
=
mat
.
step
.
buf
[
0
];
const
size_t
strideW
=
mat
.
step
.
buf
[
1
];
const
size_t
strideH
=
mat
.
step
[
0
];
const
bool
is_dense
=
strideW
==
pixsz
*
channels
&&
strideH
==
strideW
*
width
;
if
(
!
is_dense
)
cv
::
util
::
throw_error
(
std
::
logic_error
(
"Doesn't support conversion"
" from non-dense cv::Mat"
));
IE
::
BlockingDesc
bdesc
({
1
,
height
,
width
,
channels
}
/* dims */
,
{
0
,
2
,
3
,
1
}
/* order for NHWC */
,
0
/* offset */
,
{
0
,
0
,
0
,
0
}
/* offsets for dims */
,
{
strideH
*
height
,
strideH
,
channels
,
1
}
/* strides for dims */
);
return
IE
::
TensorDesc
(
toIE
(
mat
.
depth
()),
IE
::
SizeVector
{
1
,
channels
,
height
,
width
},
IE
::
Layout
::
NHWC
);
IE
::
SizeVector
{
1
,
channels
,
height
,
width
},
bdesc
);
}
return
IE
::
TensorDesc
(
toIE
(
mat
.
depth
()),
toIE
(
sz
),
toIELayout
(
sz
.
dims
()));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录