Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
af2a7006
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,发现更多精彩内容 >>
提交
af2a7006
编写于
5月 07, 2013
作者:
V
Vladislav Vinogradov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
made module dependency optional
上级
62edeeed
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
66 addition
and
17 deletion
+66
-17
modules/gpubgsegm/CMakeLists.txt
modules/gpubgsegm/CMakeLists.txt
+1
-1
modules/gpubgsegm/perf/perf_bgsegm.cpp
modules/gpubgsegm/perf/perf_bgsegm.cpp
+26
-9
modules/gpubgsegm/perf/perf_precomp.hpp
modules/gpubgsegm/perf/perf_precomp.hpp
+2
-0
modules/gpubgsegm/src/fgd.cpp
modules/gpubgsegm/src/fgd.cpp
+11
-1
modules/gpubgsegm/src/gmg.cpp
modules/gpubgsegm/src/gmg.cpp
+7
-1
modules/gpubgsegm/src/precomp.hpp
modules/gpubgsegm/src/precomp.hpp
+12
-3
modules/gpubgsegm/test/test_bgsegm.cpp
modules/gpubgsegm/test/test_bgsegm.cpp
+5
-2
modules/gpubgsegm/test/test_precomp.hpp
modules/gpubgsegm/test/test_precomp.hpp
+2
-0
未找到文件。
modules/gpubgsegm/CMakeLists.txt
浏览文件 @
af2a7006
...
...
@@ -6,4 +6,4 @@ set(the_description "GPU-accelerated Background Segmentation")
ocv_warnings_disable
(
CMAKE_CXX_FLAGS /wd4127 /wd4324 /wd4512 -Wundef -Wmissing-declarations
)
ocv_define_module
(
gpubgsegm opencv_video
opencv_imgproc opencv_legacy
opencv_gpuarithm opencv_gpufilters opencv_gpuimgproc
)
ocv_define_module
(
gpubgsegm opencv_video
OPTIONAL opencv_legacy opencv_imgproc
opencv_gpuarithm opencv_gpufilters opencv_gpuimgproc
)
modules/gpubgsegm/perf/perf_bgsegm.cpp
浏览文件 @
af2a7006
...
...
@@ -41,8 +41,14 @@
//M*/
#include "perf_precomp.hpp"
#include "opencv2/legacy.hpp"
#include "opencv2/gpuimgproc.hpp"
#ifdef HAVE_OPENCV_LEGACY
# include "opencv2/legacy.hpp"
#endif
#ifdef HAVE_OPENCV_GPUIMGPROC
# include "opencv2/gpuimgproc.hpp"
#endif
using
namespace
std
;
using
namespace
testing
;
...
...
@@ -60,6 +66,13 @@ using namespace perf;
# define BUILD_WITH_VIDEO_INPUT_SUPPORT 0
#endif
//////////////////////////////////////////////////////
// FGDStatModel
#if BUILD_WITH_VIDEO_INPUT_SUPPORT
#ifdef HAVE_OPENCV_LEGACY
namespace
cv
{
template
<
>
void
Ptr
<
CvBGStatModel
>::
delete_obj
()
...
...
@@ -68,10 +81,7 @@ namespace cv
}
}
//////////////////////////////////////////////////////
// FGDStatModel
#if BUILD_WITH_VIDEO_INPUT_SUPPORT
#endif
DEF_PARAM_TEST_1
(
Video
,
string
);
...
...
@@ -91,7 +101,7 @@ PERF_TEST_P(Video, FGDStatModel,
if
(
PERF_RUN_GPU
())
{
cv
::
gpu
::
GpuMat
d_frame
(
frame
),
foreground
,
background3
,
background
;
cv
::
gpu
::
GpuMat
d_frame
(
frame
),
foreground
;
cv
::
Ptr
<
cv
::
gpu
::
BackgroundSubtractorFGD
>
d_fgd
=
cv
::
gpu
::
createBackgroundSubtractorFGD
();
d_fgd
->
apply
(
d_frame
,
foreground
);
...
...
@@ -108,14 +118,18 @@ PERF_TEST_P(Video, FGDStatModel,
stopTimer
();
}
GPU_SANITY_CHECK
(
foreground
,
1e-2
,
ERROR_RELATIVE
);
#ifdef HAVE_OPENCV_GPUIMGPROC
cv
::
gpu
::
GpuMat
background3
,
background
;
d_fgd
->
getBackgroundImage
(
background3
);
cv
::
gpu
::
cvtColor
(
background3
,
background
,
cv
::
COLOR_BGR2BGRA
);
GPU_SANITY_CHECK
(
background
,
1e-2
,
ERROR_RELATIVE
);
GPU_SANITY_CHECK
(
foreground
,
1e-2
,
ERROR_RELATIVE
);
#endif
}
else
{
#ifdef HAVE_OPENCV_LEGACY
IplImage
ipl_frame
=
frame
;
cv
::
Ptr
<
CvBGStatModel
>
model
(
cvCreateFGDStatModel
(
&
ipl_frame
));
...
...
@@ -136,6 +150,9 @@ PERF_TEST_P(Video, FGDStatModel,
CPU_SANITY_CHECK
(
background
);
CPU_SANITY_CHECK
(
foreground
);
#else
FAIL_NO_CPU
();
#endif
}
}
...
...
modules/gpubgsegm/perf/perf_precomp.hpp
浏览文件 @
af2a7006
...
...
@@ -57,6 +57,8 @@
#include "opencv2/gpubgsegm.hpp"
#include "opencv2/video.hpp"
#include "opencv2/opencv_modules.hpp"
#ifdef GTEST_CREATE_SHARED_LIBRARY
#error no modules except ts should have GTEST_CREATE_SHARED_LIBRARY defined
#endif
...
...
modules/gpubgsegm/src/fgd.cpp
浏览文件 @
af2a7006
...
...
@@ -45,7 +45,7 @@
using
namespace
cv
;
using
namespace
cv
::
gpu
;
#if !defined
HAVE_CUDA || defined(CUDA_DISABLER
)
#if !defined
(HAVE_CUDA) || defined(CUDA_DISABLER) || !defined(HAVE_OPENCV_IMGPROC) || !defined(HAVE_OPENCV_GPUARITHM) || !defined(HAVE_OPENCV_GPUIMGPROC
)
cv
::
gpu
::
FGDParams
::
FGDParams
()
{
throw_no_cuda
();
}
...
...
@@ -309,6 +309,8 @@ namespace
/////////////////////////////////////////////////////////////////////////
// smoothForeground
#ifdef HAVE_OPENCV_GPUFILTERS
namespace
{
void
morphology
(
const
GpuMat
&
src
,
GpuMat
&
dst
,
GpuMat
&
filterBrd
,
int
brd
,
Ptr
<
gpu
::
Filter
>&
filter
,
Scalar
brdVal
)
...
...
@@ -336,6 +338,8 @@ namespace
}
}
#endif
/////////////////////////////////////////////////////////////////////////
// findForegroundRegions
...
...
@@ -606,8 +610,10 @@ namespace
GpuMat
buf_
;
GpuMat
filterBrd_
;
#ifdef HAVE_OPENCV_GPUFILTERS
Ptr
<
gpu
::
Filter
>
dilateFilter_
;
Ptr
<
gpu
::
Filter
>
erodeFilter_
;
#endif
CvMemStorage
*
storage_
;
};
...
...
@@ -645,8 +651,10 @@ namespace
int
FG_pixels_count
=
bgfgClassification
(
prevFrame_
,
curFrame
,
Ftd_
,
Fbd_
,
foreground_
,
countBuf_
,
params_
,
4
);
#ifdef HAVE_OPENCV_GPUFILTERS
if
(
params_
.
perform_morphing
>
0
)
smoothForeground
(
foreground_
,
filterBrd_
,
buf_
,
erodeFilter_
,
dilateFilter_
,
params_
);
#endif
if
(
params_
.
minArea
>
0
||
params_
.
is_obj_without_holes
)
findForegroundRegions
(
foreground_
,
h_foreground_
,
foreground_regions_
,
storage_
,
params_
);
...
...
@@ -702,6 +710,7 @@ namespace
stat_
.
create
(
firstFrame
.
size
(),
params_
);
fgd
::
setBGPixelStat
(
stat_
);
#ifdef HAVE_OPENCV_GPUFILTERS
if
(
params_
.
perform_morphing
>
0
)
{
Mat
kernel
=
getStructuringElement
(
MORPH_RECT
,
Size
(
1
+
params_
.
perform_morphing
*
2
,
1
+
params_
.
perform_morphing
*
2
));
...
...
@@ -710,6 +719,7 @@ namespace
dilateFilter_
=
gpu
::
createMorphologyFilter
(
MORPH_DILATE
,
CV_8UC1
,
kernel
,
anchor
);
erodeFilter_
=
gpu
::
createMorphologyFilter
(
MORPH_ERODE
,
CV_8UC1
,
kernel
,
anchor
);
}
#endif
}
}
...
...
modules/gpubgsegm/src/gmg.cpp
浏览文件 @
af2a7006
...
...
@@ -45,7 +45,7 @@
using
namespace
cv
;
using
namespace
cv
::
gpu
;
#if !defined HAVE_CUDA || defined(CUDA_DISABLER)
|| !defined(HAVE_OPENCV_GPUFILTERS)
#if !defined HAVE_CUDA || defined(CUDA_DISABLER)
Ptr
<
gpu
::
BackgroundSubtractorGMG
>
cv
::
gpu
::
createBackgroundSubtractorGMG
(
int
,
double
)
{
throw_no_cuda
();
return
Ptr
<
gpu
::
BackgroundSubtractorGMG
>
();
}
...
...
@@ -141,8 +141,10 @@ namespace
GpuMat
colors_
;
GpuMat
weights_
;
#if defined(HAVE_OPENCV_GPUFILTERS) && defined(HAVE_OPENCV_GPUARITHM)
Ptr
<
gpu
::
Filter
>
boxFilter_
;
GpuMat
buf_
;
#endif
};
GMGImpl
::
GMGImpl
(
int
initializationFrames
,
double
decisionThreshold
)
...
...
@@ -212,6 +214,7 @@ namespace
funcs
[
frame
.
depth
()][
frame
.
channels
()
-
1
](
frame
,
fgmask
,
colors_
,
weights_
,
nfeatures_
,
frameNum_
,
learningRate_
,
updateBackgroundModel_
,
StreamAccessor
::
getStream
(
stream
));
#if defined(HAVE_OPENCV_GPUFILTERS) && defined(HAVE_OPENCV_GPUARITHM)
// medianBlur
if
(
smoothingRadius_
>
0
)
{
...
...
@@ -220,6 +223,7 @@ namespace
const
double
thresh
=
255.0
*
minCount
/
(
smoothingRadius_
*
smoothingRadius_
);
gpu
::
threshold
(
buf_
,
fgmask
,
thresh
,
255.0
,
THRESH_BINARY
,
stream
);
}
#endif
// keep track of how many frames we have processed
++
frameNum_
;
...
...
@@ -255,8 +259,10 @@ namespace
nfeatures_
.
setTo
(
Scalar
::
all
(
0
));
#if defined(HAVE_OPENCV_GPUFILTERS) && defined(HAVE_OPENCV_GPUARITHM)
if
(
smoothingRadius_
>
0
)
boxFilter_
=
gpu
::
createBoxFilter
(
CV_8UC1
,
-
1
,
Size
(
smoothingRadius_
,
smoothingRadius_
));
#endif
loadConstants
(
frameSize_
.
width
,
frameSize_
.
height
,
minVal_
,
maxVal_
,
quantizationLevels_
,
backgroundPrior_
,
decisionThreshold_
,
maxFeatures_
,
numInitializationFrames_
);
...
...
modules/gpubgsegm/src/precomp.hpp
浏览文件 @
af2a7006
...
...
@@ -46,12 +46,21 @@
#include <limits>
#include "opencv2/gpubgsegm.hpp"
#include "opencv2/gpuarithm.hpp"
#include "opencv2/gpufilters.hpp"
#include "opencv2/gpuimgproc.hpp"
#include "opencv2/core/private.gpu.hpp"
#include "opencv2/opencv_modules.hpp"
#ifdef HAVE_OPENCV_GPUARITHM
# include "opencv2/gpuarithm.hpp"
#endif
#ifdef HAVE_OPENCV_GPUFILTERS
# include "opencv2/gpufilters.hpp"
#endif
#ifdef HAVE_OPENCV_GPUIMGPROC
# include "opencv2/gpuimgproc.hpp"
#endif
#endif
/* __OPENCV_PRECOMP_H__ */
modules/gpubgsegm/test/test_bgsegm.cpp
浏览文件 @
af2a7006
...
...
@@ -41,7 +41,10 @@
//M*/
#include "test_precomp.hpp"
#include "opencv2/legacy.hpp"
#ifdef HAVE_OPENCV_LEGACY
# include "opencv2/legacy.hpp"
#endif
#ifdef HAVE_CUDA
...
...
@@ -62,7 +65,7 @@ using namespace cvtest;
//////////////////////////////////////////////////////
// FGDStatModel
#if BUILD_WITH_VIDEO_INPUT_SUPPORT
#if BUILD_WITH_VIDEO_INPUT_SUPPORT
&& defined(HAVE_OPENCV_LEGACY)
namespace
cv
{
...
...
modules/gpubgsegm/test/test_precomp.hpp
浏览文件 @
af2a7006
...
...
@@ -59,4 +59,6 @@
#include "opencv2/gpubgsegm.hpp"
#include "opencv2/video.hpp"
#include "opencv2/opencv_modules.hpp"
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录