public void Run() { var gray = new Mat(FilePath.Image.Lenna, LoadMode.GrayScale); var dst = new Mat(FilePath.Image.Lenna, LoadMode.Color); // ORB var orb = new ORB(1000); KeyPoint[] keypoints = orb.Detect(gray); // FREAK FREAK freak = new FREAK(); Mat freakDescriptors = new Mat(); freak.Compute(gray, ref keypoints, freakDescriptors); if (keypoints != null) { var color = new Scalar(0, 255, 0); foreach (KeyPoint kpt in keypoints) { float r = kpt.Size / 2; Cv2.Circle(dst, kpt.Pt, (int)r, color, 1, LineType.Link8, 0); Cv2.Line(dst, new Point2f(kpt.Pt.X + r, kpt.Pt.Y + r), new Point2f(kpt.Pt.X - r, kpt.Pt.Y - r), color, 1, LineType.Link8, 0); Cv2.Line(dst, new Point2f(kpt.Pt.X - r, kpt.Pt.Y + r), new Point2f(kpt.Pt.X + r, kpt.Pt.Y - r), color, 1, LineType.Link8, 0); } } using (new Window("FREAK", dst)) { Cv.WaitKey(); } }
public void SetFeatureDescriptor(object sender, EventArgs e) { var currentItem = sender as ToolStripComboBox; var enumItem = EnumExtension.ReturnEnumValue <EFeaturesDescriptor>(currentItem.SelectedItem.ToString()); IFeatureDescriptor tempItem = null; switch (enumItem) { case EFeaturesDescriptor.ORB: tempItem = new OrientedFastAndRotatedBrief(); break; case EFeaturesDescriptor.FAST: tempItem = new FAST(); break; case EFeaturesDescriptor.FREAK: tempItem = new FREAK(); break; case EFeaturesDescriptor.BRIEF: tempItem = new BRIEF(); break; case EFeaturesDescriptor.CudaORB: tempItem = new CudaOrientedFastAndRotatedBrief(); break; } _sfmManager._descriptor = tempItem; }
public override void RunTest() { using var gray = new Mat(ImagePath.Lenna, ImreadModes.Grayscale); using var dst = new Mat(ImagePath.Lenna, ImreadModes.Color); // ORB using var orb = ORB.Create(1000); KeyPoint[] keypoints = orb.Detect(gray); // FREAK using var freak = FREAK.Create(); Mat freakDescriptors = new Mat(); freak.Compute(gray, ref keypoints, freakDescriptors); if (keypoints != null) { var color = new Scalar(0, 255, 0); foreach (KeyPoint kpt in keypoints) { float r = kpt.Size / 2; Cv2.Circle(dst, (Point)kpt.Pt, (int)r, color); Cv2.Line(dst, (Point) new Point2f(kpt.Pt.X + r, kpt.Pt.Y + r), (Point) new Point2f(kpt.Pt.X - r, kpt.Pt.Y - r), color); Cv2.Line(dst, (Point) new Point2f(kpt.Pt.X - r, kpt.Pt.Y + r), (Point) new Point2f(kpt.Pt.X + r, kpt.Pt.Y - r), color); } } using (new Window("FREAK", dst)) { Cv2.WaitKey(); } }
public FreakForm(FREAK freak) { this._freak = freak; InitializeComponent(); InitializeStringForComponents(); }