Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
53b678d5
O
Opencv
项目概览
Greenplum
/
Opencv
9 个月 前同步成功
通知
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,体验更适合开发者的 AI 搜索 >>
未验证
提交
53b678d5
编写于
5月 17, 2023
作者:
A
Alexander Smorkalov
提交者:
GitHub
5月 17, 2023
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #23632 from asmorkalov:as/AffineFeature_mask_fix_3.4
Fixed mask handling in AffineFeature
上级
be848245
ae8c9030
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
25 addition
and
1 deletion
+25
-1
modules/features2d/src/affine_feature.cpp
modules/features2d/src/affine_feature.cpp
+3
-1
modules/features2d/test/test_affine_feature.cpp
modules/features2d/test/test_affine_feature.cpp
+22
-0
未找到文件。
modules/features2d/src/affine_feature.cpp
浏览文件 @
53b678d5
...
...
@@ -243,7 +243,7 @@ private:
else
mask0
=
mask
;
pose
=
Matx23f
(
1
,
0
,
0
,
0
,
1
,
0
);
0
,
1
,
0
);
if
(
phi
==
0
)
image
.
copyTo
(
rotImage
);
...
...
@@ -276,6 +276,8 @@ private:
}
if
(
phi
!=
0
||
tilt
!=
1
)
warpAffine
(
mask0
,
warpedMask
,
pose
,
warpedImage
.
size
(),
INTER_NEAREST
);
else
warpedMask
=
mask0
;
}
...
...
modules/features2d/test/test_affine_feature.cpp
浏览文件 @
53b678d5
...
...
@@ -182,4 +182,26 @@ TEST(Features2d_AFFINE_FEATURE, regression)
#endif
}
TEST
(
Features2d_AFFINE_FEATURE
,
mask
)
{
Mat
gray
=
imread
(
cvtest
::
findDataFile
(
"features2d/tsukuba.png"
),
IMREAD_GRAYSCALE
);
ASSERT_FALSE
(
gray
.
empty
())
<<
"features2d/tsukuba.png image was not found in test data!"
;
// small tilt range to limit internal mask warping
Ptr
<
AffineFeature
>
ext
=
AffineFeature
::
create
(
SIFT
::
create
(),
1
,
0
);
Mat
mask
=
Mat
::
zeros
(
gray
.
size
(),
CV_8UC1
);
mask
(
Rect
(
50
,
50
,
mask
.
cols
-
100
,
mask
.
rows
-
100
)).
setTo
(
255
);
// calc and compare keypoints
vector
<
KeyPoint
>
calcKeypoints
;
ext
->
detectAndCompute
(
gray
,
mask
,
calcKeypoints
,
noArray
(),
false
);
// added expanded test range to cover sub-pixel coordinates for features on mask border
for
(
size_t
i
=
0
;
i
<
calcKeypoints
.
size
();
i
++
)
{
ASSERT_TRUE
((
calcKeypoints
[
i
].
pt
.
x
>=
50
-
1
)
&&
(
calcKeypoints
[
i
].
pt
.
x
<=
mask
.
cols
-
50
+
1
));
ASSERT_TRUE
((
calcKeypoints
[
i
].
pt
.
y
>=
50
-
1
)
&&
(
calcKeypoints
[
i
].
pt
.
y
<=
mask
.
rows
-
50
+
1
));
}
}
}}
// namespace
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录