Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
eccfc90b
O
Opencv
项目概览
Greenplum
/
Opencv
大约 1 年 前同步成功
通知
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,发现更多精彩内容 >>
提交
eccfc90b
编写于
12月 28, 2011
作者:
V
Vladislav Vinogradov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
bug fix
上级
f937d68d
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
12 addition
and
1 deletion
+12
-1
modules/gpu/src/cuda/fast.cu
modules/gpu/src/cuda/fast.cu
+8
-0
modules/gpu/src/fast.cpp
modules/gpu/src/fast.cpp
+3
-0
modules/gpu/src/orb.cpp
modules/gpu/src/orb.cpp
+1
-1
未找到文件。
modules/gpu/src/cuda/fast.cu
浏览文件 @
eccfc90b
...
...
@@ -223,6 +223,8 @@ namespace cv { namespace gpu { namespace device
template
<
bool
calcScore
,
class
Mask
>
__global__
void
calcKeypoints
(
const
DevMem2Db
img
,
const
Mask
mask
,
short2
*
kpLoc
,
const
unsigned
int
maxKeypoints
,
PtrStepi
score
,
const
int
threshold
)
{
#if __CUDA_ARCH__ >= 110
const
int
j
=
threadIdx
.
x
+
blockIdx
.
x
*
blockDim
.
x
+
3
;
const
int
i
=
threadIdx
.
y
+
blockIdx
.
y
*
blockDim
.
y
+
3
;
...
...
@@ -276,6 +278,8 @@ namespace cv { namespace gpu { namespace device
kpLoc
[
ind
]
=
make_short2
(
j
,
i
);
}
}
#endif
}
int
calcKeypoints_gpu
(
DevMem2Db
img
,
DevMem2Db
mask
,
short2
*
kpLoc
,
int
maxKeypoints
,
DevMem2Di
score
,
int
threshold
)
...
...
@@ -321,6 +325,8 @@ namespace cv { namespace gpu { namespace device
__global__
void
nonmaxSupression
(
const
short2
*
kpLoc
,
int
count
,
const
DevMem2Di
scoreMat
,
short2
*
locFinal
,
float
*
responseFinal
)
{
#if __CUDA_ARCH__ >= 110
const
int
kpIdx
=
threadIdx
.
x
+
blockIdx
.
x
*
blockDim
.
x
;
if
(
kpIdx
<
count
)
...
...
@@ -349,6 +355,8 @@ namespace cv { namespace gpu { namespace device
responseFinal
[
ind
]
=
static_cast
<
float
>
(
score
);
}
}
#endif
}
int
nonmaxSupression_gpu
(
const
short2
*
kpLoc
,
int
count
,
DevMem2Di
score
,
short2
*
loc
,
float
*
response
)
...
...
modules/gpu/src/fast.cpp
浏览文件 @
eccfc90b
...
...
@@ -124,6 +124,7 @@ int cv::gpu::FAST_GPU::calcKeyPointsLocation(const GpuMat& img, const GpuMat& ma
CV_Assert
(
img
.
type
()
==
CV_8UC1
);
CV_Assert
(
mask
.
empty
()
||
(
mask
.
type
()
==
CV_8UC1
&&
mask
.
size
()
==
img
.
size
()));
CV_Assert
(
TargetArchs
::
builtWith
(
GLOBAL_ATOMICS
)
&&
DeviceInfo
().
supports
(
GLOBAL_ATOMICS
));
int
maxKeypoints
=
static_cast
<
int
>
(
keypointsRatio
*
img
.
size
().
area
());
...
...
@@ -145,6 +146,8 @@ int cv::gpu::FAST_GPU::getKeyPoints(GpuMat& keypoints)
{
using
namespace
cv
::
gpu
::
device
::
fast
;
CV_Assert
(
TargetArchs
::
builtWith
(
GLOBAL_ATOMICS
)
&&
DeviceInfo
().
supports
(
GLOBAL_ATOMICS
));
if
(
count_
==
0
)
return
0
;
...
...
modules/gpu/src/orb.cpp
浏览文件 @
eccfc90b
...
...
@@ -666,7 +666,7 @@ void cv::gpu::ORB_GPU::mergeKeyPoints(GpuMat& keypoints)
mergeLocation_gpu
(
keyPointsPyr_
[
level
].
ptr
<
short2
>
(
0
),
keyPointsRange
.
ptr
<
float
>
(
0
),
keyPointsRange
.
ptr
<
float
>
(
1
),
keyPointsCount_
[
level
],
locScale
,
0
);
GpuMat
range
=
keyPointsRange
.
rowRange
(
2
,
4
);
keyPointsPyr_
[
level
]
.
rowRange
(
1
,
3
).
copyTo
(
range
);
keyPointsPyr_
[
level
]
(
Range
(
1
,
3
),
Range
(
0
,
keyPointsCount_
[
level
])
).
copyTo
(
range
);
keyPointsRange
.
row
(
4
).
setTo
(
Scalar
::
all
(
level
));
keyPointsRange
.
row
(
5
).
setTo
(
Scalar
::
all
(
params_
.
patch_size_
*
sf
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录