public MainForm(SURFFeatureExtractor featureExtractor, KnnTrainResult <SURFFeature> knnTrainResult) { InitializeComponent(); FeatureExtractor = featureExtractor; TrainResult = knnTrainResult; knn = new Knn <SURFFeature>(TrainResult); TagToBrush = new Dictionary <string, Brush>(); AllBrush = new List <Brush> { Brushes.Aqua, Brushes.Red, Brushes.Green, Brushes.Yellow, Brushes.Gray }; }
static void Main(string[] args) { KnnTrainResult <SURFFeature> TrainedFeatures = new KnnTrainResult <SURFFeature>(); SURFFeatureExtractor FeatureExtractor = new SURFFeatureExtractor(threshold, octaves, initial) { ExtractNegativeOnly = true, MinimumScale = minimumScale }; //Training foreach (var SamplePathTag_Pair in SamplePathTag_Pairs) { string Path = SamplePathTag_Pair.Key; string Tag = SamplePathTag_Pair.Value; BitmapReader TestSampleBitmapReader = new BitmapReader(Path); var Bitmaps = TestSampleBitmapReader.GetBitmaps(); Console.WriteLine("Extract features from tag:{0}, path:{1}", Tag, Path); var features = FeatureExtractor.ExtractFeatures(Bitmaps, Tag); Console.WriteLine("Features extract ,Count:{0}", features.Count()); var knnTrainer = new KnnTrainer <SURFFeature>(features); var knnTrainResult = knnTrainer.Train(); TrainedFeatures.AddRange(knnTrainResult); foreach (var b in Bitmaps) { b.Dispose(); } GC.Collect(); GC.WaitForPendingFinalizers(); } Application.EnableVisualStyles(); Application.Run(new MainForm(FeatureExtractor, TrainedFeatures)); }