Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
07d15759
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,发现更多精彩内容 >>
提交
07d15759
编写于
1月 11, 2012
作者:
A
Andrey Pavlenko
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Tegra optimization for warpPerspective() and 2 new perf tests
上级
9260ad4d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
78 addition
and
0 deletion
+78
-0
modules/imgproc/perf/perf_warp.cpp
modules/imgproc/perf/perf_warp.cpp
+73
-0
modules/imgproc/src/imgwarp.cpp
modules/imgproc/src/imgwarp.cpp
+5
-0
未找到文件。
modules/imgproc/perf/perf_warp.cpp
0 → 100644
浏览文件 @
07d15759
#include "perf_precomp.hpp"
using
namespace
std
;
using
namespace
cv
;
using
namespace
perf
;
using
namespace
testing
;
CV_ENUM
(
BorderMode
,
BORDER_CONSTANT
,
BORDER_REPLICATE
);
CV_ENUM
(
InterType
,
INTER_NEAREST
,
INTER_LINEAR
);
typedef
TestBaseWithParam
<
tr1
::
tuple
<
Size
,
InterType
,
BorderMode
>
>
TestWarpAffine
;
typedef
TestBaseWithParam
<
tr1
::
tuple
<
Size
,
InterType
,
BorderMode
>
>
TestWarpPerspective
;
PERF_TEST_P
(
TestWarpAffine
,
WarpAffine
,
Combine
(
Values
(
szVGA
,
sz720p
,
sz1080p
),
ValuesIn
(
InterType
::
all
()
),
ValuesIn
(
BorderMode
::
all
()
)
)
)
{
Size
sz
;
int
borderMode
,
interType
;
tr1
::
tie
(
sz
,
borderMode
,
interType
)
=
GetParam
();
Mat
src
,
img
=
imread
(
getDataPath
(
"cv/shared/fruits.jpg"
));
cvtColor
(
img
,
src
,
COLOR_BGR2RGBA
,
4
);
Mat
warpMat
=
getRotationMatrix2D
(
Point2f
(
src
.
cols
/
2
,
src
.
rows
/
2
),
30
,
2.2
);
Mat
dst
(
sz
,
CV_8UC4
);
//declare.in(src).out(dst);
TEST_CYCLE
()
warpAffine
(
src
,
dst
,
warpMat
,
sz
,
interType
,
borderMode
,
Scalar
::
all
(
150
)
);
SANITY_CHECK
(
dst
);
}
PERF_TEST_P
(
TestWarpPerspective
,
WarpPerspective
,
Combine
(
Values
(
szVGA
,
sz720p
,
sz1080p
),
ValuesIn
(
InterType
::
all
()
),
ValuesIn
(
BorderMode
::
all
()
)
)
)
{
Size
sz
;
int
borderMode
,
interType
;
tr1
::
tie
(
sz
,
borderMode
,
interType
)
=
GetParam
();
Mat
src
,
img
=
imread
(
getDataPath
(
"cv/shared/fruits.jpg"
));
cvtColor
(
img
,
src
,
COLOR_BGR2RGBA
,
4
);
Mat
rotMat
=
getRotationMatrix2D
(
Point2f
(
src
.
cols
/
2
,
src
.
rows
/
2
),
30
,
2.2
);
Mat
warpMat
(
3
,
3
,
CV_64FC1
);
for
(
int
r
=
0
;
r
<
2
;
r
++
)
for
(
int
c
=
0
;
c
<
3
;
c
++
)
warpMat
.
at
<
double
>
(
r
,
c
)
=
rotMat
.
at
<
double
>
(
r
,
c
);
warpMat
.
at
<
double
>
(
2
,
0
)
=
.3
/
sz
.
width
;
warpMat
.
at
<
double
>
(
2
,
1
)
=
.3
/
sz
.
height
;
warpMat
.
at
<
double
>
(
2
,
2
)
=
1
;
Mat
dst
(
sz
,
CV_8UC4
);
//declare.in(src).out(dst);
TEST_CYCLE
()
warpPerspective
(
src
,
dst
,
warpMat
,
sz
,
interType
,
borderMode
,
Scalar
::
all
(
150
)
);
SANITY_CHECK
(
dst
);
}
modules/imgproc/src/imgwarp.cpp
浏览文件 @
07d15759
...
...
@@ -2977,6 +2977,11 @@ void cv::warpPerspective( InputArray _src, OutputArray _dst, InputArray _M0,
if
(
!
(
flags
&
WARP_INVERSE_MAP
)
)
invert
(
matM
,
matM
);
#ifdef HAVE_TEGRA_OPTIMIZATION
if
(
tegra
::
warpPerspective
(
src
,
dst
,
M
,
interpolation
,
borderType
,
borderValue
)
)
return
;
#endif
int
x
,
y
,
x1
,
y1
,
width
=
dst
.
cols
,
height
=
dst
.
rows
;
int
bh0
=
std
::
min
(
BLOCK_SZ
/
2
,
height
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录