Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
3be997cf
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,发现更多精彩内容 >>
提交
3be997cf
编写于
4月 18, 2013
作者:
V
Vladislav Vinogradov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
gpulegacy module fixes
上级
6d735c11
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
45 addition
and
62 deletion
+45
-62
modules/gpulegacy/CMakeLists.txt
modules/gpulegacy/CMakeLists.txt
+1
-1
modules/gpulegacy/include/opencv2/gpulegacy/NCVPyramid.hpp
modules/gpulegacy/include/opencv2/gpulegacy/NCVPyramid.hpp
+2
-2
modules/gpulegacy/src/cuda/NCVHaarObjectDetection.cu
modules/gpulegacy/src/cuda/NCVHaarObjectDetection.cu
+2
-1
modules/gpulegacy/src/cuda/NCVPyramid.cu
modules/gpulegacy/src/cuda/NCVPyramid.cu
+36
-20
modules/gpulegacy/test/main_nvidia.cpp
modules/gpulegacy/test/main_nvidia.cpp
+2
-2
modules/gpuwarping/src/pyramids.cpp
modules/gpuwarping/src/pyramids.cpp
+2
-36
未找到文件。
modules/gpulegacy/CMakeLists.txt
浏览文件 @
3be997cf
...
...
@@ -4,6 +4,6 @@ endif()
set
(
the_description
"GPU-accelerated Computer Vision (legacy)"
)
ocv_warnings_disable
(
CMAKE_CXX_FLAGS -Wundef -Wmissing-declarations -Wuninitialized
)
ocv_warnings_disable
(
CMAKE_CXX_FLAGS
/wd4127 /wd4130 /wd4324 /wd4512
-Wundef -Wmissing-declarations -Wuninitialized
)
ocv_define_module
(
gpulegacy opencv_core OPTIONAL opencv_objdetect
)
modules/gpulegacy/include/opencv2/gpulegacy/NCVPyramid.hpp
浏览文件 @
3be997cf
...
...
@@ -52,8 +52,8 @@ namespace cv { namespace gpu { namespace cudev
{
namespace
pyramid
{
template
<
typename
T
>
void
kernelDownsampleX2_gpu
(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
template
<
typename
T
>
void
kernelInterpolateFrom1_gpu
(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
CV_EXPORTS
void
downsampleX2
(
PtrStepSzb
src
,
PtrStepSzb
dst
,
int
depth
,
int
cn
,
cudaStream_t
stream
);
CV_EXPORTS
void
interpolateFrom1
(
PtrStepSzb
src
,
PtrStepSzb
dst
,
int
depth
,
int
cn
,
cudaStream_t
stream
);
}
}}}
...
...
modules/gpulegacy/src/cuda/NCVHaarObjectDetection.cu
浏览文件 @
3be997cf
...
...
@@ -66,6 +66,7 @@
#ifdef HAVE_OPENCV_OBJDETECT
# include "opencv2/objdetect.hpp"
# include "opencv2/objdetect/objdetect_c.h"
#endif
#include "opencv2/gpulegacy/NCV.hpp"
...
...
@@ -2130,7 +2131,7 @@ static NCVStatus loadFromXML(const cv::String &filename,
haar
.
ClassifierSize
.
height
=
0
;
haar
.
bHasStumpsOnly
=
true
;
haar
.
bNeedsTiltedII
=
false
;
Ncv32u
curMaxTreeDepth
;
Ncv32u
curMaxTreeDepth
=
0
;
std
::
vector
<
HaarClassifierNode128
>
h_TmpClassifierNotRootNodes
;
haarStages
.
resize
(
0
);
...
...
modules/gpulegacy/src/cuda/NCVPyramid.cu
浏览文件 @
3be997cf
...
...
@@ -223,17 +223,25 @@ namespace cv { namespace gpu { namespace cudev
cudaSafeCall
(
cudaDeviceSynchronize
()
);
}
template
void
kernelDownsampleX2_gpu
<
uchar1
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
template
void
kernelDownsampleX2_gpu
<
uchar3
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
template
void
kernelDownsampleX2_gpu
<
uchar4
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
template
void
kernelDownsampleX2_gpu
<
ushort1
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
template
void
kernelDownsampleX2_gpu
<
ushort3
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
template
void
kernelDownsampleX2_gpu
<
ushort4
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
void
downsampleX2
(
PtrStepSzb
src
,
PtrStepSzb
dst
,
int
depth
,
int
cn
,
cudaStream_t
stream
)
{
typedef
void
(
*
func_t
)(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
template
void
kernelDownsampleX2_gpu
<
float1
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
template
void
kernelDownsampleX2_gpu
<
float3
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
template
void
kernelDownsampleX2_gpu
<
float4
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
static
const
func_t
funcs
[
6
][
4
]
=
{
{
kernelDownsampleX2_gpu
<
uchar1
>
,
0
/*kernelDownsampleX2_gpu<uchar2>*/
,
kernelDownsampleX2_gpu
<
uchar3
>
,
kernelDownsampleX2_gpu
<
uchar4
>
},
{
0
/*kernelDownsampleX2_gpu<char1>*/
,
0
/*kernelDownsampleX2_gpu<char2>*/
,
0
/*kernelDownsampleX2_gpu<char3>*/
,
0
/*kernelDownsampleX2_gpu<char4>*/
},
{
kernelDownsampleX2_gpu
<
ushort1
>
,
0
/*kernelDownsampleX2_gpu<ushort2>*/
,
kernelDownsampleX2_gpu
<
ushort3
>
,
kernelDownsampleX2_gpu
<
ushort4
>
},
{
0
/*kernelDownsampleX2_gpu<short1>*/
,
0
/*kernelDownsampleX2_gpu<short2>*/
,
0
/*kernelDownsampleX2_gpu<short3>*/
,
0
/*kernelDownsampleX2_gpu<short4>*/
},
{
0
/*kernelDownsampleX2_gpu<int1>*/
,
0
/*kernelDownsampleX2_gpu<int2>*/
,
0
/*kernelDownsampleX2_gpu<int3>*/
,
0
/*kernelDownsampleX2_gpu<int4>*/
},
{
kernelDownsampleX2_gpu
<
float1
>
,
0
/*kernelDownsampleX2_gpu<float2>*/
,
kernelDownsampleX2_gpu
<
float3
>
,
kernelDownsampleX2_gpu
<
float4
>
}
};
const
func_t
func
=
funcs
[
depth
][
cn
-
1
];
CV_Assert
(
func
!=
0
);
func
(
src
,
dst
,
stream
);
}
}
}}}
...
...
@@ -298,17 +306,25 @@ namespace cv { namespace gpu { namespace cudev
cudaSafeCall
(
cudaDeviceSynchronize
()
);
}
template
void
kernelInterpolateFrom1_gpu
<
uchar1
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
template
void
kernelInterpolateFrom1_gpu
<
uchar3
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
template
void
kernelInterpolateFrom1_gpu
<
uchar4
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
template
void
kernelInterpolateFrom1_gpu
<
ushort1
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
template
void
kernelInterpolateFrom1_gpu
<
ushort3
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
template
void
kernelInterpolateFrom1_gpu
<
ushort4
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
void
interpolateFrom1
(
PtrStepSzb
src
,
PtrStepSzb
dst
,
int
depth
,
int
cn
,
cudaStream_t
stream
)
{
typedef
void
(
*
func_t
)(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
template
void
kernelInterpolateFrom1_gpu
<
float1
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
template
void
kernelInterpolateFrom1_gpu
<
float3
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
template
void
kernelInterpolateFrom1_gpu
<
float4
>(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
static
const
func_t
funcs
[
6
][
4
]
=
{
{
kernelInterpolateFrom1_gpu
<
uchar1
>
,
0
/*kernelInterpolateFrom1_gpu<uchar2>*/
,
kernelInterpolateFrom1_gpu
<
uchar3
>
,
kernelInterpolateFrom1_gpu
<
uchar4
>
},
{
0
/*kernelInterpolateFrom1_gpu<char1>*/
,
0
/*kernelInterpolateFrom1_gpu<char2>*/
,
0
/*kernelInterpolateFrom1_gpu<char3>*/
,
0
/*kernelInterpolateFrom1_gpu<char4>*/
},
{
kernelInterpolateFrom1_gpu
<
ushort1
>
,
0
/*kernelInterpolateFrom1_gpu<ushort2>*/
,
kernelInterpolateFrom1_gpu
<
ushort3
>
,
kernelInterpolateFrom1_gpu
<
ushort4
>
},
{
0
/*kernelInterpolateFrom1_gpu<short1>*/
,
0
/*kernelInterpolateFrom1_gpu<short2>*/
,
0
/*kernelInterpolateFrom1_gpu<short3>*/
,
0
/*kernelInterpolateFrom1_gpu<short4>*/
},
{
0
/*kernelInterpolateFrom1_gpu<int1>*/
,
0
/*kernelInterpolateFrom1_gpu<int2>*/
,
0
/*kernelInterpolateFrom1_gpu<int3>*/
,
0
/*kernelInterpolateFrom1_gpu<int4>*/
},
{
kernelInterpolateFrom1_gpu
<
float1
>
,
0
/*kernelInterpolateFrom1_gpu<float2>*/
,
kernelInterpolateFrom1_gpu
<
float3
>
,
kernelInterpolateFrom1_gpu
<
float4
>
}
};
const
func_t
func
=
funcs
[
depth
][
cn
-
1
];
CV_Assert
(
func
!=
0
);
func
(
src
,
dst
,
stream
);
}
}
}}}
...
...
modules/gpulegacy/test/main_nvidia.cpp
浏览文件 @
3be997cf
...
...
@@ -349,7 +349,7 @@ bool nvidia_NPPST_Resize(const std::string& test_data_path, OutputLevel outputLe
NCVAutoTestLister
testListerResize
(
"NPPST Resize"
,
outputLevel
);
NCVTestSourceProvider
<
Ncv32u
>
testSrcRandom_32u
(
2010
,
0
,
0xFFFFFFFF
,
2048
,
2048
);
NCVTestSourceProvider
<
Ncv64u
>
testSrcRandom_64u
(
2010
,
0
,
-
1
,
2048
,
2048
);
NCVTestSourceProvider
<
Ncv64u
>
testSrcRandom_64u
(
2010
,
0
,
(
Ncv64u
)
-
1
,
2048
,
2048
);
generateResizeTests
(
testListerResize
,
testSrcRandom_32u
);
generateResizeTests
(
testListerResize
,
testSrcRandom_64u
);
...
...
@@ -379,7 +379,7 @@ bool nvidia_NPPST_Transpose(const std::string& test_data_path, OutputLevel outpu
NCVAutoTestLister
testListerTranspose
(
"NPPST Transpose"
,
outputLevel
);
NCVTestSourceProvider
<
Ncv32u
>
testSrcRandom_32u
(
2010
,
0
,
0xFFFFFFFF
,
2048
,
2048
);
NCVTestSourceProvider
<
Ncv64u
>
testSrcRandom_64u
(
2010
,
0
,
-
1
,
2048
,
2048
);
NCVTestSourceProvider
<
Ncv64u
>
testSrcRandom_64u
(
2010
,
0
,
(
Ncv64u
)
-
1
,
2048
,
2048
);
generateTransposeTests
(
testListerTranspose
,
testSrcRandom_32u
);
generateTransposeTests
(
testListerTranspose
,
testSrcRandom_64u
);
...
...
modules/gpuwarping/src/pyramids.cpp
浏览文件 @
3be997cf
...
...
@@ -140,25 +140,8 @@ void cv::gpu::ImagePyramid::build(const GpuMat& img, int numLayers, Stream& stre
(
void
)
stream
;
throw_no_cuda
();
#else
using
namespace
cv
::
gpu
::
cudev
::
pyramid
;
typedef
void
(
*
func_t
)(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
static
const
func_t
funcs
[
6
][
4
]
=
{
{
kernelDownsampleX2_gpu
<
uchar1
>
,
0
/*kernelDownsampleX2_gpu<uchar2>*/
,
kernelDownsampleX2_gpu
<
uchar3
>
,
kernelDownsampleX2_gpu
<
uchar4
>
},
{
0
/*kernelDownsampleX2_gpu<char1>*/
,
0
/*kernelDownsampleX2_gpu<char2>*/
,
0
/*kernelDownsampleX2_gpu<char3>*/
,
0
/*kernelDownsampleX2_gpu<char4>*/
},
{
kernelDownsampleX2_gpu
<
ushort1
>
,
0
/*kernelDownsampleX2_gpu<ushort2>*/
,
kernelDownsampleX2_gpu
<
ushort3
>
,
kernelDownsampleX2_gpu
<
ushort4
>
},
{
0
/*kernelDownsampleX2_gpu<short1>*/
,
0
/*kernelDownsampleX2_gpu<short2>*/
,
0
/*kernelDownsampleX2_gpu<short3>*/
,
0
/*kernelDownsampleX2_gpu<short4>*/
},
{
0
/*kernelDownsampleX2_gpu<int1>*/
,
0
/*kernelDownsampleX2_gpu<int2>*/
,
0
/*kernelDownsampleX2_gpu<int3>*/
,
0
/*kernelDownsampleX2_gpu<int4>*/
},
{
kernelDownsampleX2_gpu
<
float1
>
,
0
/*kernelDownsampleX2_gpu<float2>*/
,
kernelDownsampleX2_gpu
<
float3
>
,
kernelDownsampleX2_gpu
<
float4
>
}
};
CV_Assert
(
img
.
depth
()
<=
CV_32F
&&
img
.
channels
()
<=
4
);
const
func_t
func
=
funcs
[
img
.
depth
()][
img
.
channels
()
-
1
];
CV_Assert
(
func
!=
0
);
layer0_
=
img
;
Size
szLastLayer
=
img
.
size
();
nLayers_
=
1
;
...
...
@@ -180,7 +163,7 @@ void cv::gpu::ImagePyramid::build(const GpuMat& img, int numLayers, Stream& stre
const
GpuMat
&
prevLayer
=
i
==
0
?
layer0_
:
pyramid_
[
i
-
1
];
func
(
prevLayer
,
pyramid_
[
i
]
,
StreamAccessor
::
getStream
(
stream
));
cudev
::
pyramid
::
downsampleX2
(
prevLayer
,
pyramid_
[
i
],
img
.
depth
(),
img
.
channels
()
,
StreamAccessor
::
getStream
(
stream
));
szLastLayer
=
szCurLayer
;
}
...
...
@@ -195,27 +178,10 @@ void cv::gpu::ImagePyramid::getLayer(GpuMat& outImg, Size outRoi, Stream& stream
(
void
)
stream
;
throw_no_cuda
();
#else
using
namespace
cv
::
gpu
::
cudev
::
pyramid
;
typedef
void
(
*
func_t
)(
PtrStepSzb
src
,
PtrStepSzb
dst
,
cudaStream_t
stream
);
static
const
func_t
funcs
[
6
][
4
]
=
{
{
kernelInterpolateFrom1_gpu
<
uchar1
>
,
0
/*kernelInterpolateFrom1_gpu<uchar2>*/
,
kernelInterpolateFrom1_gpu
<
uchar3
>
,
kernelInterpolateFrom1_gpu
<
uchar4
>
},
{
0
/*kernelInterpolateFrom1_gpu<char1>*/
,
0
/*kernelInterpolateFrom1_gpu<char2>*/
,
0
/*kernelInterpolateFrom1_gpu<char3>*/
,
0
/*kernelInterpolateFrom1_gpu<char4>*/
},
{
kernelInterpolateFrom1_gpu
<
ushort1
>
,
0
/*kernelInterpolateFrom1_gpu<ushort2>*/
,
kernelInterpolateFrom1_gpu
<
ushort3
>
,
kernelInterpolateFrom1_gpu
<
ushort4
>
},
{
0
/*kernelInterpolateFrom1_gpu<short1>*/
,
0
/*kernelInterpolateFrom1_gpu<short2>*/
,
0
/*kernelInterpolateFrom1_gpu<short3>*/
,
0
/*kernelInterpolateFrom1_gpu<short4>*/
},
{
0
/*kernelInterpolateFrom1_gpu<int1>*/
,
0
/*kernelInterpolateFrom1_gpu<int2>*/
,
0
/*kernelInterpolateFrom1_gpu<int3>*/
,
0
/*kernelInterpolateFrom1_gpu<int4>*/
},
{
kernelInterpolateFrom1_gpu
<
float1
>
,
0
/*kernelInterpolateFrom1_gpu<float2>*/
,
kernelInterpolateFrom1_gpu
<
float3
>
,
kernelInterpolateFrom1_gpu
<
float4
>
}
};
CV_Assert
(
outRoi
.
width
<=
layer0_
.
cols
&&
outRoi
.
height
<=
layer0_
.
rows
&&
outRoi
.
width
>
0
&&
outRoi
.
height
>
0
);
ensureSizeIsEnough
(
outRoi
,
layer0_
.
type
(),
outImg
);
const
func_t
func
=
funcs
[
outImg
.
depth
()][
outImg
.
channels
()
-
1
];
CV_Assert
(
func
!=
0
);
if
(
outRoi
.
width
==
layer0_
.
cols
&&
outRoi
.
height
==
layer0_
.
rows
)
{
if
(
stream
)
...
...
@@ -249,7 +215,7 @@ void cv::gpu::ImagePyramid::getLayer(GpuMat& outImg, Size outRoi, Stream& stream
lastLayer
=
curLayer
;
}
func
(
lastLayer
,
outImg
,
StreamAccessor
::
getStream
(
stream
));
cudev
::
pyramid
::
interpolateFrom1
(
lastLayer
,
outImg
,
outImg
.
depth
(),
outImg
.
channels
()
,
StreamAccessor
::
getStream
(
stream
));
#endif
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录