private Dictionary <string, List <DataSpectrum> > LoadSubmodelAndSpectrum(string path, string model) { Dictionary <string, List <DataSpectrum> > ret = new Dictionary <string, List <DataSpectrum> >(); List <string> subdirs = new List <string>(Directory.EnumerateDirectories(path + "\\" + model)); foreach (var subdir in subdirs) { string submodel = subdir.Substring(subdir.LastIndexOf("\\") + 1); string pathSpectrum = $"{Util.pathSource["scales"]}{model}&{submodel}.csv"; if (File.Exists(pathSpectrum)) { Preloader.Log("Načítání spektra: " + pathSpectrum); var spectrum = LoadSpectrumCSV(pathSpectrum); if (spectrum.Count > 0) { ret.Add(submodel, spectrum); } } else { LogErrors.Add($"Spektrum {pathSpectrum} nenalezeno pro model {model}/{submodel}"); } } return(ret); }
private bool ScanModel(string model) { string dirPath = Util.pathSource["models"] + Util.curModelDir; string orpMask = Util.pathSource["masks"] + model + ".bmp"; if (File.Exists(orpMask)) { Preloader.Log("Načítání masky: " + orpMask); var masks = LoadMask((Bitmap)Image.FromFile(orpMask), model); if (masks.Count > 0) { var submodel = LoadSubmodelAndSpectrum(dirPath, model); if (submodel.Count > 0) { CloudSendInputData(new DataInput() { ModelName = model, SubmodelSpectrum = submodel, Mask = masks }); return(true); } } } else { LogErrors.Add($"Maska {orpMask} nenalezena pro model {model}"); } return(false); }
public void EnumerationModels() { Stopwatch watch = Stopwatch.StartNew(); List <Task> tasks = new List <Task>(); if (sourceImages.Count > 0) { foreach (var si in sourceImages) { //EnumerationModel(si); //Preloader.Log($"načítání a zpracování obrázků {i}/{sourceImages.Count} "); tasks.Add(Task.Run(() => EnumerationModel(si))); if (i == 30) { Task.WaitAll(tasks.ToArray()); tasks.Clear(); images.Clear(); i = 0; GC.Collect(); GC.WaitForPendingFinalizers(); Task.Delay(500).Wait(); Preloader.Log($"[flushing] "); Util.l($"flushing"); } i++; /* * Thread t = new Thread(() => EnumerationModel(si)); * t.Start(); */ //Util.HideLoading(); //break;//// } } Task.WaitAll(tasks.ToArray()); watch.Stop(); Console.WriteLine($"Celkově v čase {watch.ElapsedMilliseconds}ms, obrázků {sourceImages.Count}"); }
private void CloudSendInputData(DataInput dataInput) { Model.Cloud.DBInitialization(dataInput); Preloader.Log($"Uloženo do db: {dataInput.ModelName}"); }