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(), }); }
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); }