# Revision history [back]

From the ORB documentation, what you could try is to set the nlevels parameter to 1:

cv::Ptr<cv::Feature2D> orb = cv::ORB::create(500,  1.2f, 1);


The detected features should occur only on the current image size.

PS: any corner like feature detectors as FAST, HARRIS, GoodFeatureToTrack, AGAST are scale variant. As most of the descriptors need an orientation information, if you want to be "rotation" invariant, in my opinion you have to calculate yourself the orientation of the keypoint. For example, ORB (Oriented FAST and Rotated BRIEF) uses the intensity centroid measure for the corner orientation.

From the ORB documentation, what you could try is to set the nlevels parameter to 1:

cv::Ptr<cv::Feature2D> orb = cv::ORB::create(500,  1.2f, 1);


The detected features should occur only on the current image size.

PS: any corner like feature detectors as FAST, HARRIS, GoodFeatureToTrack, AGAST are scale variant. As most of the descriptors need an orientation information, if you want to be "rotation" invariant, "rotation invariant", in my opinion you have to calculate yourself the orientation of the keypoint. keypoint and set manually the angle member. For example, ORB (Oriented FAST and Rotated BRIEF) uses the intensity centroid measure for the corner orientation.