Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
9992c4d2
Commit
9992c4d2
authored
6 years ago
by
Alexander Alekhin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
stitching(test): workaround ParallelFeaturesFinder.IsSameWithSerial
parent
5459c11e
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
7 deletions
+15
-7
test_matchers.cpp
modules/stitching/test/test_matchers.cpp
+15
-7
No files found.
modules/stitching/test/test_matchers.cpp
View file @
9992c4d2
...
...
@@ -40,7 +40,6 @@
//M*/
#include "test_precomp.hpp"
#include "opencv2/opencv_modules.hpp"
namespace
opencv_test
{
namespace
{
...
...
@@ -89,18 +88,27 @@ TEST(ParallelFeaturesFinder, IsSameWithSerial)
Ptr
<
Feature2D
>
serial_finder
=
ORB
::
create
();
Mat
img
=
imread
(
string
(
cvtest
::
TS
::
ptr
()
->
get_data_path
())
+
"stitching/a3.png"
,
IMREAD_GRAYSCALE
);
vector
<
Mat
>
imgs
(
50
,
img
);
detail
::
ImageFeatures
serial_features
;
vector
<
detail
::
ImageFeatures
>
para_features
(
imgs
.
size
());
detail
::
computeImageFeatures
(
serial_finder
,
img
,
serial_features
);
detail
::
computeImageFeatures
(
para_finder
,
imgs
,
para_features
);
vector
<
Mat
>
imgs
(
50
,
img
);
vector
<
detail
::
ImageFeatures
>
para_features
(
imgs
.
size
());
detail
::
computeImageFeatures
(
para_finder
,
imgs
,
para_features
);
// FIXIT This call doesn't use parallel_for_()
// results must be the same
Mat
serial_descriptors
;
serial_features
.
descriptors
.
copyTo
(
serial_descriptors
);
for
(
size_t
i
=
0
;
i
<
para_features
.
size
();
++
i
)
{
Mat
diff_descriptors
=
serial_features
.
descriptors
.
getMat
(
ACCESS_READ
)
!=
para_features
[
i
].
descriptors
.
getMat
(
ACCESS_READ
);
EXPECT_EQ
(
countNonZero
(
diff_descriptors
),
0
);
SCOPED_TRACE
(
cv
::
format
(
"i=%zu"
,
i
));
EXPECT_EQ
(
serial_descriptors
.
size
(),
para_features
[
i
].
descriptors
.
size
());
#if 0 // FIXIT ORB descriptors are not bit-exact (perhaps due internal parallel_for usage)
ASSERT_EQ(0, cv::norm(u_serial_descriptors, para_features[i].descriptors, NORM_L1))
<< "serial_size=" << u_serial_descriptors.size()
<< " par_size=" << para_features[i].descriptors.size()
<< endl << u_serial_descriptors.getMat(ACCESS_READ)
<< endl << endl << para_features[i].descriptors.getMat(ACCESS_READ);
#endif
EXPECT_EQ
(
serial_features
.
img_size
,
para_features
[
i
].
img_size
);
EXPECT_EQ
(
serial_features
.
keypoints
.
size
(),
para_features
[
i
].
keypoints
.
size
());
}
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment