Esempio n. 1
0
 public MainVM(IFolderDialog dialog, Dispatcher disp = null)
 {
     dispatcher       = disp;
     folderDialog     = dialog;
     openCommand      = new MyCommand(_ => { return(true); }, _ => SelectDirectory());
     recognizeCommand = new MyCommand(_ => { return(Images.Count() > 0); }, _ => RecognizeFunck());
     stopCommand      = new MyCommand(_ => { return(Images.Count() > 0); }, _ => imageRecognizer.Cancel());
     selectCommand    = new MyCommand(_ => { return(ClassVMs.Count() > 0); }, _ => SelectImgs());
     clearCommand     = new MyCommand(_ => { return(db != null); }, _ => ClearDB());
     showCommand      = new MyCommand(_ => { return(true); }, _ => GetStatistics());
 }
Esempio n. 2
0
        public async void  RecognizeFunck()
        {
            //ThreadPool.QueueUserWorkItem(new WaitCallback(_ =>
            //{
            foreach (var img in Images)
            {
                var tmpImage = new ImageInfoGet();
                var client   = new HttpClient();

                tmpImage.Path      = img.Path;
                tmpImage.Path      = img.Name;
                tmpImage.JpegCover = Convert.ToBase64String(ConvertImageToByteArray(img.Path));

                var s = JsonConvert.SerializeObject(tmpImage);
                var c = new StringContent(s);

                c.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");

                var putResult = await client.PutAsync("http://localhost:5000/api/images/", c);

                string body = await putResult.Content.ReadAsStringAsync();

                ImageInfoGet info = JsonConvert.DeserializeObject <ImageInfoGet>(body);
                //MessageBox.Show(body);

                //ImageVM imageVM;

                //imageVM = new ImageVM(img.Path, img.Name, info.Confidence, info.Class);


                //Images.Add(imageVM);
                img.Confidence = info.Confidence;
                img.ClassName  = info.Class;
                Progress++;

                this.dispatcher.BeginInvoke(new Action(() =>
                {
                    if (ClassVMs.Count() > 0)
                    {
                        bool flag = false;
                        foreach (var imgClass in ClassVMs)
                        {
                            if (imgClass.Type == info.Class)
                            {
                                imgClass.Count++;
                                flag = true;
                                break;
                            }
                        }
                        if (!flag)
                        {
                            ClassVMs.Add(new ImageClassVM(info.Class, 1));
                        }
                    }
                    else
                    {
                        ClassVMs.Add(new ImageClassVM(info.Class, 1));
                    }
                }));
            }
            //imageRecognizer.GetResults();



            //}));
        }