First time here? Check out the FAQ!

Ask Your Question
2

FeatureDetector vs. FeatureFinder

asked Apr 4 '13

bschlinker gravatar image

updated Apr 4 '13

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?

Preview: (hide)

Comments

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 (Apr 4 '13)edit

1 answer

Sort by » oldest newest most voted
1

answered Jul 21 '14

Duffycola gravatar image

updated Jul 21 '14

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),
            8
        );
    Ptr<DescriptorExtractor> descriptor = DescriptorExtractor::create("ORB");
Preview: (hide)

Question Tools

Stats

Asked: Apr 4 '13

Seen: 715 times

Last updated: Jul 21 '14