コード例 #1
0
ファイル: MainVM.cs プロジェクト: marytsuk/s02170244
        public void SelectDirectory()
        {
            string stream = folderDialog.OpenFolder();

            if (!stream.Equals(String.Empty))
            {
                Progress = 0;
                ClassVMs = new ObservableCollection <ImageClassVM>();

                db = new Database.ApplicationContext();
                var dir = Directory.GetFiles(stream);
                Images = new ObservableCollection <ImageVM>();
                List <string> fileNames = new List <string>();

                foreach (var file in dir)
                {
                    bool flag     = false;
                    var  fileInfo = new FileInfo(file);

                    foreach (var img in db.Images)
                    {
                        if (fileInfo.FullName == img.Path)
                        {
                            var code1 = ConvertImageToByteArray(fileInfo.FullName);
                            IStructuralEquatable equ = code1;
                            var code2 = img.Details.Image;
                            if (equ.Equals(code2, EqualityComparer <object> .Default))
                            {
                                img.count++;

                                db.SaveChanges();
                                Images.Add(new ImageVM(fileInfo.FullName, fileInfo.Name, img.Confidence, img.ClassName));

                                flag = true;
                                Progress++;

                                dispatcher.BeginInvoke(new Action(() =>
                                {
                                    if (ClassVMs.Count() > 0)
                                    {
                                        bool flag1 = false;
                                        foreach (var imgClass in ClassVMs)
                                        {
                                            if (imgClass.Type == img.ClassName)
                                            {
                                                imgClass.Count++;
                                                flag1 = true;
                                                break;
                                            }
                                        }
                                        if (!flag1)
                                        {
                                            ClassVMs.Add(new ImageClassVM(img.ClassName, 1));
                                        }
                                    }
                                    else
                                    {
                                        ClassVMs.Add(new ImageClassVM(img.ClassName, 1));
                                    }
                                }));
                                break;
                            }
                        }
                    }

                    if (!flag)
                    {
                        Images.Add(new ImageVM(fileInfo.FullName, fileInfo.Name));
                        fileNames.Add(fileInfo.FullName);
                    }
                }

                imageRecognizer = new ImageRecognizer(fileNames, new ForResults(this));
            }
        }
コード例 #2
0
        public async void SelectDirectory()
        {
            string stream = folderDialog.OpenFolder();

            if (!stream.Equals(String.Empty))
            {
                var dir = Directory.GetFiles(stream);
                Images   = new ObservableCollection <ImageVM>();
                ClassVMs = new ObservableCollection <ImageClassVM>();
                Progress = 0;
                foreach (var file in dir)
                {
                    var fileInfo = new FileInfo(file);
                    var imageVM  = new ImageVM(fileInfo.FullName, fileInfo.Name);
                    Images.Add(imageVM);
                }

                //ClassVMs = new ObservableCollection<ImageClassVM>();

                //Progress = 0;
                //var dir = Directory.GetFiles(stream);
                //Images = new ObservableCollection<ImageVM>();
                ////List<string> fileNames = new List<string>();
                //HttpClient client = new HttpClient();
                //foreach (var file in dir)
                //{


                //    var tmpImage = new ImageInfoGet();

                //    var fileInfo = new FileInfo(file);
                //    tmpImage.Path = fileInfo.FullName;
                //    tmpImage.Path = fileInfo.Name;
                //    tmpImage.JpegCover = Convert.ToBase64String(ConvertImageToByteArray(fileInfo.FullName));

                //    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(fileInfo.FullName, fileInfo.Name, info.Confidence, info.Class);


                //    Images.Add(imageVM);
                //    Progress++;

                //    await 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 = new ImageRecognizer(fileNames, new ForResults(this));
        }