Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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}");
        }
Beispiel #4
0
 private void CloudSendInputData(DataInput dataInput)
 {
     Model.Cloud.DBInitialization(dataInput);
     Preloader.Log($"Uloženo do db: {dataInput.ModelName}");
 }