コード例 #1
0
        public Frame BuildFrameFromFile(FileInfo file)
        {
            IEnumerable <MKeyPoint> kazeKeyPoints;

            using (var frame = new Image <Bgr, byte>(file.FullName)) {
                using (var kaze = new KAZE(true, true)) {
                    kazeKeyPoints = kaze.Detect(frame);
                }
            }

            return(new Frame()
            {
                Id = ResolveFrameId(file),
                KazePoints = kazeKeyPoints.ToList(),
            });
        }
コード例 #2
0
        public AlgorithmResult DetectKaze(
            string filename,
            KeypointType kpsType,
            float threshold,
            int octaves,
            int sublevels)
        {
            AlgorithmResult   result      = new AlgorithmResult();
            Image <Bgr, byte> image       = ImageHelper.GetImage(filename);
            Image <Bgr, byte> resultImage = new Image <Bgr, byte>(filename);

            // Get features from image
            var kaze      = new KAZE(false, false, threshold, octaves, sublevels, Diffusivity.PmG2);
            var keyPoints = kaze.Detect(image);

            DrawKeypoints(
                image,
                new VectorOfKeyPoint(keyPoints),
                resultImage,
                new Bgr(Color.FromArgb(255, 77, 77)),
                GetKeypointDraw(kpsType));

            result.ImageArray = ImageHelper.SetImage(resultImage);
            result.KeyDatas   = new List <KeyPointModel>();
            result.KeyDatas.AddRange(keyPoints.Select(k => new KeyPointModel()
            {
                X        = k.Point.X,
                Y        = k.Point.Y,
                Size     = k.Size,
                Angle    = k.Angle,
                Response = k.Response,
                Octave   = k.Octave,
                ClassId  = k.ClassId
            }));

            return(result);
        }