Ejemplo n.º 1
0
        //记录提取的特征点及其数量
        private void SetFeature(LoweFeatureDetector featureDetector)
        {
            NumOfFeature = featureDetector.GlobalKeypoints.Count;
            features     = new Feature[NumOfFeature];
            for (int i = 0; i < NumOfFeature; i++)
            {
                Keypoint keypoint = (Keypoint)featureDetector.GlobalKeypoints[i];

                features[i] = new Feature(keypoint.Image, keypoint.X, keypoint.Y, keypoint.ImgScale, keypoint.Scale, keypoint.Orientation);
                features[i].CreateVector(4, 4, 8);
                features[i].HasFeatureVector = keypoint.HasFV;
                features[i].FeatureVector    = keypoint.FV;
            }
        }
Ejemplo n.º 2
0
        //使用sift算法提取特征点
        public void SiftFeatures()
        {
            BasicImagingInterface picture = new DisplayImage("E:/SoftwareEngineering/LibrarySeatsManager/LibrarySeatsManager/b.jpg");
            int    pictureWidth           = picture.Width;
            int    pictureHeight          = picture.Height;
            double startScale             = 1.0;//图片之间的原始比例


            ImageMap pictureMap = picture.ConvertToImageMap(null);

            picture = null;

            //对内存垃圾回收
            GC.Collect();

            LoweFeatureDetector featureDetector = new LoweFeatureDetector();

            featureDetector.DetectFeatures(pictureMap);

            //记录提取的特征点及其数量
            SetFeature(featureDetector);
        }