Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
c4ab0c09
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,发现更多精彩内容 >>
提交
c4ab0c09
编写于
12月 10, 2021
作者:
A
Alexander Alekhin
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #21228 from alalek:issue_21198
上级
9b7f40ce
659cf724
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
20 addition
and
5 deletion
+20
-5
modules/imgproc/src/opencl/resize.cl
modules/imgproc/src/opencl/resize.cl
+4
-4
modules/imgproc/src/resize.cpp
modules/imgproc/src/resize.cpp
+2
-1
modules/imgproc/test/ocl/test_warp.cpp
modules/imgproc/test/ocl/test_warp.cpp
+14
-0
未找到文件。
modules/imgproc/src/opencl/resize.cl
浏览文件 @
c4ab0c09
...
...
@@ -51,8 +51,6 @@
#
endif
#
endif
#
define
INTER_RESIZE_COEF_SCALE
(
1
<<
INTER_RESIZE_COEF_BITS
)
#
define
CAST_BITS
(
INTER_RESIZE_COEF_BITS
<<
1
)
#
define
INC
(
x,l
)
min
(
x+1,l-1
)
#
define
noconvert
...
...
@@ -188,7 +186,9 @@ __kernel void resizeLN(__global const uchar * srcptr, int src_step, int src_offs
int
y_
=
INC
(
y,
src_rows
)
;
int
x_
=
INC
(
x,
src_cols
)
;
#
if
depth
<=
4
#
if
depth
<=
1
//
8U/8S
only,
16U+
cause
integer
overflows
#
define
INTER_RESIZE_COEF_SCALE
(
1
<<
INTER_RESIZE_COEF_BITS
)
#
define
CAST_BITS
(
INTER_RESIZE_COEF_BITS
<<
1
)
u
=
u
*
INTER_RESIZE_COEF_SCALE
;
v
=
v
*
INTER_RESIZE_COEF_SCALE
;
...
...
@@ -214,7 +214,7 @@ __kernel void resizeLN(__global const uchar * srcptr, int src_step, int src_offs
WT
data2
=
convertToWT
(
loadpix
(
srcptr
+
mad24
(
y_,
src_step,
mad24
(
x,
TSIZE,
src_offset
))))
;
WT
data3
=
convertToWT
(
loadpix
(
srcptr
+
mad24
(
y_,
src_step,
mad24
(
x_,
TSIZE,
src_offset
))))
;
T
uval
=
u1
*
v1
*
data0
+
u
*
v1
*
data1
+
u1
*
v
*data2
+
u
*
v
*data3
;
T
uval
=
convertToDT
((
u1
*
v1
)
*
data0
+
(
u
*
v1
)
*
data1
+
(
u1
*
v
)
*
data2
+
(
u
*
v
)
*
data3
)
;
#
endif
storepix
(
uval,
dstptr
+
mad24
(
dy,
dst_step,
mad24
(
dx,
TSIZE,
dst_offset
)))
;
}
...
...
modules/imgproc/src/resize.cpp
浏览文件 @
c4ab0c09
...
...
@@ -3376,7 +3376,8 @@ static bool ocl_resize( InputArray _src, OutputArray _dst, Size dsize,
}
else
{
int
wdepth
=
std
::
max
(
depth
,
CV_32S
),
wtype
=
CV_MAKETYPE
(
wdepth
,
cn
);
int
wdepth
=
depth
<=
CV_8S
?
CV_32S
:
std
::
max
(
depth
,
CV_32F
);
int
wtype
=
CV_MAKETYPE
(
wdepth
,
cn
);
k
.
create
(
"resizeLN"
,
ocl
::
imgproc
::
resize_oclsrc
,
format
(
"-D INTER_LINEAR -D depth=%d -D T=%s -D T1=%s "
"-D WT=%s -D convertToWT=%s -D convertToDT=%s -D cn=%d "
...
...
modules/imgproc/test/ocl/test_warp.cpp
浏览文件 @
c4ab0c09
...
...
@@ -327,6 +327,20 @@ OCL_TEST_P(Resize, Mat)
}
}
OCL_TEST
(
Resize
,
overflow_21198
)
{
Mat
src
(
Size
(
600
,
600
),
CV_16UC3
,
Scalar
::
all
(
32768
));
UMat
src_u
;
src
.
copyTo
(
src_u
);
Mat
dst
;
cv
::
resize
(
src
,
dst
,
Size
(
1024
,
1024
),
0
,
0
,
INTER_LINEAR
);
UMat
dst_u
;
cv
::
resize
(
src_u
,
dst_u
,
Size
(
1024
,
1024
),
0
,
0
,
INTER_LINEAR
);
EXPECT_LE
(
cv
::
norm
(
dst_u
,
dst
,
NORM_INF
),
1.0
f
);
}
/////////////////////////////////////////////////////////////////////////////////////////////////
// remap
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录