mirror of
https://github.com/opencv/opencv.git
synced 2025-01-19 06:53:50 +08:00
Merge pull request #7836 from sovrasov:akaze_fix_detect_only_mode
This commit is contained in:
commit
069d51d23b
@ -200,6 +200,8 @@ namespace cv
|
||||
if (!useProvidedKeypoints)
|
||||
{
|
||||
impl.Feature_Detection(keypoints);
|
||||
if( !descriptors.needed() )
|
||||
impl.Compute_Keypoints_Orientation(keypoints);
|
||||
}
|
||||
|
||||
if (!mask.empty())
|
||||
|
@ -844,6 +844,17 @@ void AKAZEFeatures::Compute_Main_Orientation(KeyPoint& kpt, const std::vector<TE
|
||||
}
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
/**
|
||||
* @brief This method computes the main orientation for a given keypoints
|
||||
* @param kpts Input keypoints
|
||||
*/
|
||||
void AKAZEFeatures::Compute_Keypoints_Orientation(std::vector<KeyPoint>& kpts) const
|
||||
{
|
||||
for(size_t i = 0; i < kpts.size(); i++)
|
||||
Compute_Main_Orientation(kpts[i], evolution_);
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
/**
|
||||
* @brief This method computes the upright descriptor (not rotation invariant) of
|
||||
|
@ -54,6 +54,7 @@ public:
|
||||
/// Feature description methods
|
||||
void Compute_Descriptors(std::vector<cv::KeyPoint>& kpts, cv::Mat& desc);
|
||||
static void Compute_Main_Orientation(cv::KeyPoint& kpt, const std::vector<TEvolution>& evolution_);
|
||||
void Compute_Keypoints_Orientation(std::vector<cv::KeyPoint>& kpts) const;
|
||||
};
|
||||
|
||||
/* ************************************************************************* */
|
||||
|
@ -301,3 +301,23 @@ TEST( Features2d_Detector_AKAZE, regression )
|
||||
CV_FeatureDetectorTest test( "detector-akaze", AKAZE::create() );
|
||||
test.safe_run();
|
||||
}
|
||||
|
||||
TEST( Features2d_Detector_AKAZE, detect_and_compute_split )
|
||||
{
|
||||
Mat testImg(100, 100, CV_8U);
|
||||
RNG rng(101);
|
||||
rng.fill(testImg, RNG::UNIFORM, Scalar(0), Scalar(255), true);
|
||||
|
||||
Ptr<Feature2D> ext = AKAZE::create(AKAZE::DESCRIPTOR_MLDB, 0, 3, 0.001f, 1, 1, KAZE::DIFF_PM_G2);
|
||||
vector<KeyPoint> detAndCompKps;
|
||||
Mat desc;
|
||||
ext->detectAndCompute(testImg, noArray(), detAndCompKps, desc);
|
||||
|
||||
vector<KeyPoint> detKps;
|
||||
ext->detect(testImg, detKps);
|
||||
|
||||
ASSERT_EQ(detKps.size(), detAndCompKps.size());
|
||||
|
||||
for(size_t i = 0; i < detKps.size(); i++)
|
||||
ASSERT_EQ(detKps[i].hash(), detAndCompKps[i].hash());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user