Ask Your Question

FeatureDetector vs. FeatureFinder

asked 2013-04-04 03:16:52 -0500

bschlinker gravatar image

updated 2013-04-04 03:17:54 -0500

I'm trying to understand the difference between the FeatureDetector class and the FeatureFinder class. I've seen panorama examples written in OpenCV use both of these classes and it appears to be possible to use the SURF algorithm with either one. It was my understanding that the SURF FeatureDetector was moved to /nonfree because of possible issues with the SURF algorithm, but yet, FeatureFinder also can employ the SURF algorithm.

What's the difference between these two classes?

edit retag flag offensive close merge delete


Good question, basically they both call the same functionality inside and return a set of interesting feature points in the image. I would be glad if someone could explain this. Using prebuilt libraries here, so kind of hard to compare the source code of both.

However, the stitching was introduced at a later stage, probably they have seperated functions (other name) to do actually the same, but to contain all the functionality needed for stitching into a single stitching namespace?

StevenPuttemans gravatar imageStevenPuttemans ( 2013-04-04 03:56:51 -0500 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2014-07-21 11:27:34 -0500

Duffycola gravatar image

updated 2014-07-21 11:27:49 -0500

FeatureFinder is a high-level class that abstracts feature detection + description. SIFT/SURF/ORB all describe a detection and a description scheme, but most of the time they are perceived as descriptors. Separating both will give you much more flexibility:

    Ptr<FeatureDetector> detector = 
        new PyramidAdaptedFeatureDetector(
            new DynamicAdaptedFeatureDetector(
                new FastAdjuster(20, true), 40, 60, 4),
    Ptr<DescriptorExtractor> descriptor = DescriptorExtractor::create("ORB");
edit flag offensive delete link more

Question Tools


Asked: 2013-04-04 03:16:52 -0500

Seen: 238 times

Last updated: Jul 21 '14