|
|
|
@ -185,7 +185,7 @@ protected: |
|
|
|
|
{ |
|
|
|
|
inliersCount++; |
|
|
|
|
|
|
|
|
|
const float maxAngleDiff = 3.f; // grad
|
|
|
|
|
const float maxAngleDiff = 15.f; // grad
|
|
|
|
|
|
|
|
|
|
float angle0 = keypoints0[m0].angle; |
|
|
|
|
float angle1 = keypoints1[nearestPointIndex].angle; |
|
|
|
@ -199,7 +199,8 @@ protected: |
|
|
|
|
rotAngle0 -= 360.f; |
|
|
|
|
|
|
|
|
|
float angleDiff = std::max(rotAngle0, angle1) - std::min(rotAngle0, angle1); |
|
|
|
|
angleDiff = std::min(angleDiff, static_cast<float>(2. * CV_PI - angleDiff)); |
|
|
|
|
angleDiff = std::min(angleDiff, static_cast<float>(360.f - angleDiff)); |
|
|
|
|
CV_Assert(angleDiff >= 0.f); |
|
|
|
|
bool isAngleCorrect = angleDiff < maxAngleDiff; |
|
|
|
|
|
|
|
|
|
if(isAngleCorrect) |
|
|
|
@ -241,14 +242,8 @@ protected: |
|
|
|
|
|
|
|
|
|
// Tests registration
|
|
|
|
|
|
|
|
|
|
TEST(Features2d_RotationInvariance_Detector_MSER, regression) |
|
|
|
|
{ |
|
|
|
|
DetectorRotatationInvarianceTest test(Algorithm::create<FeatureDetector>("Feature2D.MSER"), 0.52f, 0.94f); |
|
|
|
|
test.safe_run(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST(Features2d_RotationInvariance_Detector_ORB, regression) |
|
|
|
|
{ |
|
|
|
|
DetectorRotatationInvarianceTest test(Algorithm::create<FeatureDetector>("Feature2D.ORB"), 0.90, 0.95); |
|
|
|
|
DetectorRotatationInvarianceTest test(Algorithm::create<FeatureDetector>("Feature2D.ORB"), 0.90, 0.83); |
|
|
|
|
test.safe_run(); |
|
|
|
|
} |
|
|
|
|