Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
bb589a59
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,发现更多精彩内容 >>
提交
bb589a59
编写于
9月 24, 2012
作者:
I
Ilya Lavrenov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
debug
上级
427ce124
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
38 addition
and
5 deletion
+38
-5
modules/imgproc/src/imgwarp.cpp
modules/imgproc/src/imgwarp.cpp
+38
-5
未找到文件。
modules/imgproc/src/imgwarp.cpp
浏览文件 @
bb589a59
...
...
@@ -47,6 +47,8 @@
// */
#include "precomp.hpp"
#include <iostream>
#include <vector>
namespace
cv
{
...
...
@@ -1414,6 +1416,8 @@ public:
,
cur_dy_ofs
(
_cur_dy_ofs
),
bands
(
_bands
)
#endif
{
if
(
src
.
size
()
==
Size
(
16
,
16
)
&&
dst
.
size
()
==
Size
(
5
,
5
))
std
::
cout
<<
"scale_y = "
<<
scale_y_
<<
std
::
endl
<<
std
::
endl
;
}
#ifdef HAVE_TBB
...
...
@@ -1437,7 +1441,7 @@ public:
#ifdef HAVE_TBB
cur_dy
=
cur_dy_ofs
[
range
.
start
];
#endif
for
(
sy
=
range
.
start
;
sy
<
range
.
end
;
sy
++
)
for
(
sy
=
range
.
start
;
sy
<
range
.
end
;
sy
++
)
{
const
T
*
S
=
(
const
T
*
)(
src
.
data
+
src
.
step
*
sy
);
if
(
cn
==
1
)
...
...
@@ -1484,6 +1488,9 @@ public:
if
(
(
cur_dy
+
1
)
*
scale_y
<=
sy
+
1
||
sy
==
ssize
.
height
-
1
)
{
if
(
dsize
==
Size
(
5
,
5
)
&&
ssize
==
Size
(
16
,
16
))
std
::
cout
<<
"Band: ("
<<
range
.
start
<<
", "
<<
range
.
end
<<
")"
<<
std
::
endl
;
WT
beta
=
std
::
max
(
sy
+
1
-
(
cur_dy
+
1
)
*
scale_y
,
(
WT
)
0
);
WT
beta1
=
1
-
beta
;
T
*
D
=
(
T
*
)(
dst
.
data
+
dst
.
step
*
cur_dy
);
...
...
@@ -1493,14 +1500,31 @@ public:
return
;
for
(
dx
=
0
;
dx
<
dsize
.
width
;
dx
++
)
{
D
[
dx
]
=
saturate_cast
<
T
>
((
sum
[
dx
]
+
buf
[
dx
])
/
min
(
scale_y
,
src
.
rows
-
cur_dy
*
scale_y
));
D
[
dx
]
=
saturate_cast
<
T
>
((
sum
[
dx
]
+
buf
[
dx
])
/
min
(
scale_y
,
src
.
rows
-
cur_dy
*
scale_y
));
//
if
(
dsize
==
Size
(
5
,
5
)
&&
ssize
==
Size
(
16
,
16
))
{
std
::
cout
<<
"sum["
<<
dx
<<
"] = "
<<
sum
[
dx
]
<<
std
::
endl
;
std
::
cout
<<
"buf["
<<
dx
<<
"] = "
<<
buf
[
dx
]
<<
std
::
endl
;
std
::
cout
<<
"min(scale_y, src.rows - cur_dy * scale_y) = "
<<
min
(
scale_y
,
src
.
rows
-
cur_dy
*
scale_y
)
<<
std
::
endl
;
std
::
cout
<<
"D["
<<
dx
<<
"] = "
<<
D
[
dx
]
<<
std
::
endl
;
std
::
cout
<<
std
::
endl
;
}
sum
[
dx
]
=
buf
[
dx
]
=
0
;
}
}
else
for
(
dx
=
0
;
dx
<
dsize
.
width
;
dx
++
)
{
D
[
dx
]
=
saturate_cast
<
T
>
((
sum
[
dx
]
+
buf
[
dx
]
*
beta1
)
/
min
(
scale_y
,
src
.
rows
-
cur_dy
*
scale_y
));
{
D
[
dx
]
=
saturate_cast
<
T
>
((
sum
[
dx
]
+
buf
[
dx
]
*
beta1
)
/
min
(
scale_y
,
src
.
rows
-
cur_dy
*
scale_y
));
//
if
(
dsize
==
Size
(
5
,
5
)
&&
ssize
==
Size
(
16
,
16
))
{
std
::
cout
<<
"sum["
<<
dx
<<
"] = "
<<
sum
[
dx
]
<<
std
::
endl
;
std
::
cout
<<
"buf["
<<
dx
<<
"] = "
<<
buf
[
dx
]
<<
std
::
endl
;
std
::
cout
<<
"beta1 = "
<<
beta1
<<
std
::
endl
;
std
::
cout
<<
"min(scale_y, src.rows - cur_dy * scale_y) = "
<<
min
(
scale_y
,
src
.
rows
-
cur_dy
*
scale_y
)
<<
std
::
endl
;
std
::
cout
<<
"D["
<<
dx
<<
"] = "
<<
D
[
dx
]
<<
std
::
endl
;
std
::
cout
<<
std
::
endl
;
}
sum
[
dx
]
=
buf
[
dx
]
*
beta
;
buf
[
dx
]
=
0
;
}
...
...
@@ -1579,11 +1603,20 @@ static void resizeArea_( const Mat& src, Mat& dst, const DecimateAlpha* xofs, in
cur_dy
++
;
}
}
bands
.
push_back
(
std
::
make_pair
(
index
,
ssize
.
height
));
//
bands.push_back(std::make_pair(index, ssize.height));
#endif
#ifdef HAVE_TBB
Range
range
(
0
,
bands
.
size
());
if
(
dsize
==
Size
(
5
,
5
)
&&
ssize
==
Size
(
16
,
16
))
{
std
::
cout
<<
"Bands"
<<
std
::
endl
;
for
(
std
::
vector
<
std
::
pair
<
int
,
int
>
>::
const_iterator
i
=
bands
.
begin
(),
end
=
bands
.
end
();
i
!=
end
;
++
i
)
std
::
cout
<<
i
->
first
<<
" "
<<
i
->
second
<<
std
::
endl
;
std
::
cout
<<
std
::
endl
;
}
resizeArea_Invoker
<
T
,
WT
>
invoker
(
src
,
dst
,
xofs
,
xofs_count
,
scale_y_
,
cur_dy_ofs
,
bands
);
#else
Range
range
(
0
,
src
.
rows
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录