Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
48a084c2
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,发现更多精彩内容 >>
提交
48a084c2
编写于
1月 27, 2014
作者:
I
Ilya Lavrenov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
OpenCL version of cv::buildPyramid
上级
d9b24457
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
57 addition
and
0 deletion
+57
-0
modules/core/include/opencv2/core/mat.hpp
modules/core/include/opencv2/core/mat.hpp
+1
-0
modules/core/src/matrix.cpp
modules/core/src/matrix.cpp
+17
-0
modules/imgproc/perf/opencl/perf_pyramid.cpp
modules/imgproc/perf/opencl/perf_pyramid.cpp
+29
-0
modules/imgproc/src/pyramids.cpp
modules/imgproc/src/pyramids.cpp
+10
-0
未找到文件。
modules/core/include/opencv2/core/mat.hpp
浏览文件 @
48a084c2
...
...
@@ -207,6 +207,7 @@ public:
virtual
bool
fixedType
()
const
;
virtual
bool
needed
()
const
;
virtual
Mat
&
getMatRef
(
int
i
=-
1
)
const
;
virtual
UMat
&
getUMatRef
(
int
i
=-
1
)
const
;
virtual
cuda
::
GpuMat
&
getGpuMatRef
()
const
;
virtual
ogl
::
Buffer
&
getOGlBufferRef
()
const
;
virtual
cuda
::
CudaMem
&
getCudaMemRef
()
const
;
...
...
modules/core/src/matrix.cpp
浏览文件 @
48a084c2
...
...
@@ -2484,6 +2484,23 @@ Mat& _OutputArray::getMatRef(int i) const
}
}
UMat
&
_OutputArray
::
getUMatRef
(
int
i
)
const
{
int
k
=
kind
();
if
(
i
<
0
)
{
CV_Assert
(
k
==
UMAT
);
return
*
(
UMat
*
)
obj
;
}
else
{
CV_Assert
(
k
==
STD_VECTOR_UMAT
);
std
::
vector
<
UMat
>&
v
=
*
(
std
::
vector
<
UMat
>*
)
obj
;
CV_Assert
(
i
<
(
int
)
v
.
size
()
);
return
v
[
i
];
}
}
cuda
::
GpuMat
&
_OutputArray
::
getGpuMatRef
()
const
{
int
k
=
kind
();
...
...
modules/imgproc/perf/opencl/perf_pyramid.cpp
浏览文件 @
48a084c2
...
...
@@ -100,6 +100,35 @@ OCL_PERF_TEST_P(PyrUpFixture, PyrUp,
SANITY_CHECK
(
dst
,
eps
);
}
///////////// buildPyramid ////////////////////////
typedef
Size_MatType
BuildPyramidFixture
;
OCL_PERF_TEST_P
(
BuildPyramidFixture
,
BuildPyramid
,
::
testing
::
Combine
(
OCL_TEST_SIZES
,
OCL_TEST_TYPES
))
{
const
Size_MatType_t
params
=
GetParam
();
const
Size
srcSize
=
get
<
0
>
(
params
);
const
int
type
=
get
<
1
>
(
params
),
maxLevel
=
5
;
const
double
eps
=
CV_MAT_DEPTH
(
type
)
<=
CV_32S
?
1
:
1e-5
;
checkDeviceMaxMemoryAllocSize
(
srcSize
,
type
);
std
::
vector
<
UMat
>
dst
(
maxLevel
);
UMat
src
(
srcSize
,
type
);
declare
.
in
(
src
,
WARMUP_RNG
);
OCL_TEST_CYCLE
()
cv
::
buildPyramid
(
src
,
dst
,
maxLevel
);
UMat
dst0
=
dst
[
0
],
dst1
=
dst
[
1
],
dst2
=
dst
[
2
],
dst3
=
dst
[
3
],
dst4
=
dst
[
4
];
SANITY_CHECK
(
dst0
,
eps
);
SANITY_CHECK
(
dst1
,
eps
);
SANITY_CHECK
(
dst2
,
eps
);
SANITY_CHECK
(
dst3
,
eps
);
SANITY_CHECK
(
dst4
,
eps
);
}
}
}
// namespace cvtest::ocl
#endif // HAVE_OPENCL
modules/imgproc/src/pyramids.cpp
浏览文件 @
48a084c2
...
...
@@ -556,6 +556,16 @@ void cv::pyrUp( InputArray _src, OutputArray _dst, const Size& _dsz, int borderT
void
cv
::
buildPyramid
(
InputArray
_src
,
OutputArrayOfArrays
_dst
,
int
maxlevel
,
int
borderType
)
{
if
(
_src
.
dims
()
<=
2
&&
_dst
.
isUMatVector
())
{
UMat
src
=
_src
.
getUMat
();
_dst
.
create
(
maxlevel
+
1
,
1
,
0
);
_dst
.
getUMatRef
(
0
)
=
src
;
for
(
int
i
=
1
;
i
<=
maxlevel
;
i
++
)
pyrDown
(
_dst
.
getUMatRef
(
i
-
1
),
_dst
.
getUMatRef
(
i
),
Size
(),
borderType
);
return
;
}
Mat
src
=
_src
.
getMat
();
_dst
.
create
(
maxlevel
+
1
,
1
,
0
);
_dst
.
getMatRef
(
0
)
=
src
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录