title: Difference between SiftFeatureDetector() and Ptr<FeatureDetector>
body: <p>Whats the difference between SiftFeatureDetector() and Ptr. They both apparently have the same function. The <a href="http://docs.opencv.org/doc/tutorials/features2d/feature_detection/feature_detection.html#feature-detection" rel="nofollow">opencv tutorial</a> uses SiftFeatureDetector but when <a href="http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html?highlight=surffeaturedetector#featuredetector" rel="nofollow">clicking on the official documentation</a> they use Ptr and have no mention of SiftFeatureDetector(), so I cant read up on it. as in the tutorial they used this: <code>int minHessian = 400;  SurfFeatureDetector detector( minHessian );</code> and I dont know what the minHessian is supposed to do.</p>
  
  <p>Also I tried them both on the same image and they both have the same result, then why are they different?</p>
  
  <pre><code>int _tmain(int argc, _TCHAR* argv[])
  {
  //initModule_nonfree();
  Mat img;
  
  img = imread("c:\\box.png", 0);
  
  //cvtColor( img, gry, CV_BGR2GRAY );
  
   //SiftFeatureDetector detector;
  //vector&lt;KeyPoint&gt; keypoints;
  //detector.detect(img, keypoints);
  
  Ptr&lt;FeatureDetector&gt; feature_detector = FeatureDetector::create("SIFT");
  vector&lt;KeyPoint&gt; keypoints;
  
  feature_detector-&gt;detect(img, keypoints);
  
  Mat output;
  
  drawKeypoints(img, keypoints, output, Scalar::all(-1));
  
  namedWindow("meh", CV_WINDOW_AUTOSIZE);
  imshow("meh", output);
  waitKey(0);
  
  
  
  return 0;
  </code></pre>
  
  <p>}</p>
  
  <p>Thank you</p>