public MKeyPoint[] Maspointer(Image <Bgr, byte> image, int mode) { switch (mode) { case 0: { GFTTDetector detector = new GFTTDetector(40, 0.01, 5, 3, true); MKeyPoint[] GFP1 = detector.Detect(image.Convert <Gray, byte>().Mat); return(GFP1); } case 1: { Brisk detector = new Brisk(); MKeyPoint[] GFP1 = detector.Detect(image.Convert <Gray, byte>().Mat); return(GFP1); } case 2: { FastFeatureDetector detector = new FastFeatureDetector(); MKeyPoint[] GFP1 = detector.Detect(image.Convert <Gray, byte>().Mat); return(GFP1); } } return(null); }
private void ApplyFASTFeatureDetector(int threshold = 10) { try { if (imgList["Input"] == null) { return; } var img = imgList["Input"].Clone(); var gray = img.Convert <Gray, byte>(); FastFeatureDetector detector = new FastFeatureDetector(threshold); var corners = detector.Detect(gray); dt.Rows.Clear(); lab_notes.Text = "Number of corners: " + corners.Length.ToString(); foreach (MKeyPoint pt in corners) { dt.Rows.Add(pt.ClassId, pt.Point.ToString(), pt.Angle, pt.Size, pt.Octave, pt.Response ); } Mat outimg = new Mat(); Features2DToolbox.DrawKeypoints(img, new VectorOfKeyPoint(corners), outimg, new Bgr(0, 0, 255)); imageBoxEx1.Image = outimg.ToBitmap(); dataGridView1.DataSource = dt; } catch (Exception ex) { MessageBox.Show(ex.Message); } }