Extracts FAST features in a grid pattern.
As compared to just extracting fast features over the entire image, we want to have as uniform of extractions as possible over the image plane. Thus we split the image into a bunch of small grids, and extract points in each. We then pick enough top points in each grid so that we have the total number of desired points.
- static auto compare_response(cv::KeyPoint first, cv::KeyPoint second) -> bool
- Compare keypoints based on their response value.
- static void perform_griding(const cv::Mat& img, const cv::Mat& mask, std::vector<cv::KeyPoint>& pts, int num_features, int grid_x, int grid_y, int threshold, bool nonmaxSuppression)
- This function will perform grid extraction using FAST.
static void ov_core::
Grider_FAST:: perform_griding(const cv::Mat& img,
const cv::Mat& mask,
This function will perform grid extraction using FAST.
|img||Image we will do FAST extraction on|
|mask||Region of the image we do not want to extract features in (255 = do not detect features)|
|pts||vector of extracted points we will return|
|num_features||max number of features we want to extract|
|grid_x||size of grid in the x-direction / u-direction|
|grid_y||size of grid in the y-direction / v-direction|
|threshold||FAST threshold paramter (10 is a good value normally)|
|nonmaxSuppression||if FAST should perform non-max suppression (true normally)|
Given a specified grid size, this will try to extract fast features from each grid. It will then return the best from each grid in the return vector.