Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
6b7d890f
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,发现更多精彩内容 >>
提交
6b7d890f
编写于
12月 20, 2013
作者:
A
Andrey Pavlenko
提交者:
OpenCV Buildbot
12月 20, 2013
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #2014 from krodyush:pullreq/2.4-opt-131211-surf
上级
b633c73c
fffac2f0
变更
2
展开全部
隐藏空白更改
内联
并排
Showing
2 changed file
with
235 addition
and
195 deletion
+235
-195
modules/nonfree/src/opencl/surf.cl
modules/nonfree/src/opencl/surf.cl
+220
-188
modules/nonfree/src/surf.ocl.cpp
modules/nonfree/src/surf.ocl.cpp
+15
-7
未找到文件。
modules/nonfree/src/opencl/surf.cl
浏览文件 @
6b7d890f
此差异已折叠。
点击以展开。
modules/nonfree/src/surf.ocl.cpp
浏览文件 @
6b7d890f
...
...
@@ -46,6 +46,7 @@
#ifdef HAVE_OPENCV_OCL
#include <cstdio>
#include <sstream>
#include "opencl_kernels.hpp"
using
namespace
cv
;
...
...
@@ -55,18 +56,25 @@ namespace cv
{
namespace
ocl
{
// The number of degrees between orientation samples in calcOrientation
const
static
int
ORI_SEARCH_INC
=
5
;
// The local size of the calcOrientation kernel
const
static
int
ORI_LOCAL_SIZE
=
(
360
/
ORI_SEARCH_INC
);
static
void
openCLExecuteKernelSURF
(
Context
*
clCxt
,
const
cv
::
ocl
::
ProgramEntry
*
source
,
string
kernelName
,
size_t
globalThreads
[
3
],
size_t
localThreads
[
3
],
std
::
vector
<
std
::
pair
<
size_t
,
const
void
*>
>
&
args
,
int
channels
,
int
depth
)
{
char
optBuf
[
100
]
=
{
0
};
char
*
optBufPtr
=
optBuf
;
std
::
stringstream
optsStr
;
optsStr
<<
"-D ORI_LOCAL_SIZE="
<<
ORI_LOCAL_SIZE
<<
" "
;
optsStr
<<
"-D ORI_SEARCH_INC="
<<
ORI_SEARCH_INC
<<
" "
;
cl_kernel
kernel
;
kernel
=
openCLGetKernelFromSource
(
clCxt
,
source
,
kernelName
,
opt
BufPtr
);
kernel
=
openCLGetKernelFromSource
(
clCxt
,
source
,
kernelName
,
opt
sStr
.
str
().
c_str
()
);
size_t
wave_size
=
queryWaveFrontSize
(
kernel
);
CV_Assert
(
clReleaseKernel
(
kernel
)
==
CL_SUCCESS
);
sprintf
(
optBufPtr
,
"-D WAVE_SIZE=%d"
,
static_cast
<
int
>
(
wave_size
))
;
openCLExecuteKernel
(
clCxt
,
source
,
kernelName
,
globalThreads
,
localThreads
,
args
,
channels
,
depth
,
opt
BufPtr
);
optsStr
<<
"-D WAVE_SIZE="
<<
wave_size
;
openCLExecuteKernel
(
clCxt
,
source
,
kernelName
,
globalThreads
,
localThreads
,
args
,
channels
,
depth
,
opt
sStr
.
str
().
c_str
()
);
}
}
}
...
...
@@ -594,8 +602,8 @@ void SURF_OCL_Invoker::icvCalcOrientation_gpu(const oclMat &keypoints, int nFeat
args
.
push_back
(
std
::
make_pair
(
sizeof
(
cl_int
),
(
void
*
)
&
img_cols
));
args
.
push_back
(
std
::
make_pair
(
sizeof
(
cl_int
),
(
void
*
)
&
surf_
.
sum
.
step
));
size_t
localThreads
[
3
]
=
{
32
,
4
,
1
};
size_t
globalThreads
[
3
]
=
{
nFeatures
*
localThreads
[
0
],
localThreads
[
1
]
,
1
};
size_t
localThreads
[
3
]
=
{
ORI_LOCAL_SIZE
,
1
,
1
};
size_t
globalThreads
[
3
]
=
{
nFeatures
*
localThreads
[
0
],
1
,
1
};
openCLExecuteKernelSURF
(
clCxt
,
&
surf
,
kernelName
,
globalThreads
,
localThreads
,
args
,
-
1
,
-
1
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录