Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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();
            }
        }
Ejemplo n.º 4
0
 public FreakForm(FREAK freak)
 {
     this._freak = freak;
     InitializeComponent();
     InitializeStringForComponents();
 }