Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
ac2dc295
O
Opencv
项目概览
Greenplum
/
Opencv
10 个月 前同步成功
通知
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,发现更多精彩内容 >>
提交
ac2dc295
编写于
11月 14, 2019
作者:
A
Alexander Alekhin
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #15852 from akhakim:gauss_blur_kernel_5x5
上级
d1c4e4b5
beb14c70
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
640 addition
and
14 deletion
+640
-14
modules/gapi/src/backends/fluid/gfluidimgproc.cpp
modules/gapi/src/backends/fluid/gfluidimgproc.cpp
+12
-2
modules/gapi/src/backends/fluid/gfluidimgproc_func.dispatch.cpp
...s/gapi/src/backends/fluid/gfluidimgproc_func.dispatch.cpp
+22
-0
modules/gapi/src/backends/fluid/gfluidimgproc_func.hpp
modules/gapi/src/backends/fluid/gfluidimgproc_func.hpp
+19
-0
modules/gapi/src/backends/fluid/gfluidimgproc_func.simd.hpp
modules/gapi/src/backends/fluid/gfluidimgproc_func.simd.hpp
+587
-12
未找到文件。
modules/gapi/src/backends/fluid/gfluidimgproc.cpp
浏览文件 @
ac2dc295
...
...
@@ -599,6 +599,7 @@ static void run_sepfilter(Buffer& dst, const View& src,
{
constexpr
int
kMax
=
11
;
GAPI_Assert
(
kxLen
<=
kMax
&&
kyLen
<=
kMax
);
GAPI_Assert
(
kxLen
==
kyLen
);
const
SRC
*
in
[
kMax
];
DST
*
out
;
...
...
@@ -625,6 +626,13 @@ static void run_sepfilter(Buffer& dst, const View& src,
int
border
=
xborder
;
run_sepfilter3x3_impl
(
out
,
in
,
width
,
chan
,
kx
,
ky
,
border
,
scale
,
delta
,
buf
,
y
,
y0
);
}
else
if
(
kxLen
==
5
&&
kyLen
==
5
)
{
int
y
=
dst
.
y
();
int
y0
=
dst
.
priv
().
writeStart
();
run_sepfilter5x5_impl
(
out
,
in
,
width
,
chan
,
kx
,
ky
,
xborder
,
scale
,
delta
,
buf
,
y
,
y0
);
}
else
{
int
length
=
chan
*
width
;
...
...
@@ -788,7 +796,9 @@ GAPI_FLUID_KERNEL(GFluidGaussBlur, cv::gapi::imgproc::GGaussBlur, true)
Buffer
&
dst
,
Buffer
&
scratch
)
{
int
kxsize
=
ksize
.
width
;
GAPI_Assert
(
ksize
.
height
==
ksize
.
width
);
GAPI_Assert
((
ksize
.
height
==
3
)
||
(
ksize
.
height
==
5
));
const
int
kxsize
=
ksize
.
width
;
int
kysize
=
ksize
.
height
;
auto
*
kx
=
scratch
.
OutLine
<
float
>
();
// cached kernX data
...
...
@@ -801,7 +811,7 @@ GAPI_FLUID_KERNEL(GFluidGaussBlur, cv::gapi::imgproc::GGaussBlur, true)
constexpr
int
buffSize
=
5
;
GAPI_Assert
(
ksize
.
height
<=
buffSize
);
float
*
buf
[
buffSize
]
{
};
float
*
buf
[
buffSize
]
=
{
nullptr
};
buf
[
0
]
=
ky
+
kysize
;
for
(
int
i
=
1
;
i
<
ksize
.
height
;
++
i
)
...
...
modules/gapi/src/backends/fluid/gfluidimgproc_func.dispatch.cpp
浏览文件 @
ac2dc295
...
...
@@ -119,6 +119,28 @@ RUN_SEPFILTER3X3_IMPL( float, float)
#undef RUN_SEPFILTER3X3_IMPL
#define RUN_SEPFILTER5x5_IMPL(DST, SRC) \
void run_sepfilter5x5_impl(DST out[], const SRC *in[], int width, int chan, \
const float kx[], const float ky[], int border, \
float scale, float delta, \
float *buf[], int y, int y0) \
{ \
CV_CPU_DISPATCH(run_sepfilter5x5_impl, \
(out, in, width, chan, kx, ky, border, scale, delta, buf,y, y0), \
CV_CPU_DISPATCH_MODES_ALL); \
}
RUN_SEPFILTER5x5_IMPL
(
uchar
,
uchar
)
RUN_SEPFILTER5x5_IMPL
(
short
,
uchar
)
RUN_SEPFILTER5x5_IMPL
(
float
,
uchar
)
RUN_SEPFILTER5x5_IMPL
(
ushort
,
ushort
)
RUN_SEPFILTER5x5_IMPL
(
short
,
ushort
)
RUN_SEPFILTER5x5_IMPL
(
float
,
ushort
)
RUN_SEPFILTER5x5_IMPL
(
short
,
short
)
RUN_SEPFILTER5x5_IMPL
(
float
,
short
)
RUN_SEPFILTER5x5_IMPL
(
float
,
float
)
#undef RUN_SEPFILTER5x5_IMPL
//-------------------------
//
// Fluid kernels: Filter 2D
...
...
modules/gapi/src/backends/fluid/gfluidimgproc_func.hpp
浏览文件 @
ac2dc295
...
...
@@ -78,6 +78,25 @@ RUN_SEPFILTER3X3_IMPL( float, float)
#undef RUN_SEPFILTER3X3_IMPL
#define RUN_SEPFILTER5x5_IMPL(DST, SRC) \
void run_sepfilter5x5_impl(DST out[], const SRC *in[], int width, int chan, \
const float kx[], const float ky[], int border, \
float scale, float delta, \
float *buf[], int y, int y0);
RUN_SEPFILTER5x5_IMPL
(
uchar
,
uchar
)
RUN_SEPFILTER5x5_IMPL
(
short
,
uchar
)
RUN_SEPFILTER5x5_IMPL
(
float
,
uchar
)
RUN_SEPFILTER5x5_IMPL
(
ushort
,
ushort
)
RUN_SEPFILTER5x5_IMPL
(
short
,
ushort
)
RUN_SEPFILTER5x5_IMPL
(
float
,
ushort
)
RUN_SEPFILTER5x5_IMPL
(
short
,
short
)
RUN_SEPFILTER5x5_IMPL
(
float
,
short
)
RUN_SEPFILTER5x5_IMPL
(
float
,
float
)
#undef RUN_SEPFILTER5x5_IMPL
//-------------------------
//
// Fluid kernels: Filter 2D
...
...
modules/gapi/src/backends/fluid/gfluidimgproc_func.simd.hpp
浏览文件 @
ac2dc295
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录