title: How do I use Emgu CV's Surf library to match to a library of images
body: <p>Emgu CV's Example set has an example on how to use SURFDetector to detect features from a feature and then use Features2DTracker's MatchFeature call (which seems to use KNN) to match a "model" image to an "observed" image. This part makes sense.</p>
  
  <p>Now, if I wanted to build a library of images, each using image's SURF features to find the best match for a given image, what are my options? Instead of doing a brute force match with each image in my library, can I build a tree? I'm confused because Emgu seems to be building some sort of tree, but only between two images:</p>
  
  <pre><code>     //Create a SURF Tracker using k-d Tree
       SURFTracker tracker = new SURFTracker(modelFeatures);
  </code></pre>
  
  <p>I've read almost every thread on the site on the subject but can't understand how to get started. I also though about using histogram matching -- splitting each RGB channel into bins and comparing the normalized count. Instead of calculating the euclidean distance to each image in the library, if I wanted to partition my search space based on RGB count, that would still mean branching on one of R,G,B -- and I'm not sure how to build that decision tree.</p>
  
  <p>I only started reading about this topic a few days ago, so apologies for my naivety.   </p>