/// <summary> /// Creates a new object that is a copy of the current instance. /// </summary> /// /// <returns> /// A new object that is a copy of this instance. /// </returns> /// public object Clone() { var clone = new SpeededUpRobustFeaturesDetector(threshold, octaves, initial); clone.computeOrientation = computeOrientation; clone.featureType = featureType; clone.initial = initial; clone.octaves = octaves; // Do not copy - gets recreated when needed // if (descriptor != null) // clone.descriptor = (SpeededUpRobustFeaturesDescriptor)descriptor.Clone(); // clone.responses = (ResponseLayerCollection)responses.Clone(); // clone.integral = (IntegralImage)integral.Clone(); clone.threshold = threshold; return(clone); }
private void surf() { var surf = new Accord.Imaging.SpeededUpRobustFeaturesDetector(); surfPoints1 = surf.ProcessImage(img1).ToArray(); surfPoints2 = surf.ProcessImage(img2).ToArray(); // Show the marked points in the original images Bitmap img1mark = new FeaturesMarker(surfPoints1).Apply(img1); Bitmap img2mark = new FeaturesMarker(surfPoints2).Apply(img2); // Concatenate the two images together in a single image (just to show on screen) Concatenate concatenate = new Concatenate(img1mark); pictureBox1.Image = concatenate.Apply(img2mark); }