Ejemplo n.º 1
0
        private async Task <bool> GenerateAndSave()
        {
            bool ret = false;
            await Task.Yield();

            if (await model.RequestRun())
            {
                try
                {
                    if (attentionHandler.IsSet)
                    {
                        DateTime beginPopup = DateTime.Now;
                        var      _name_     = attentionHandler.Filename;
                        (Image <byte> grayscale, Image <Pixel> applied) = await Task.Run(() => attentionHandler.GenerateGrayscaleAndApplied());

                        var label = manager.GetLabel(_name_);


                        PresentResult pr = new PresentResult();

                        pr.iActivated.Image  = applied;
                        pr.iOri.Image        = attentionHandler.Image;
                        pr.iActivation.Image = grayscale.ConvertTo <Pixel>();

                        if ((ret = await pr.ShowDialogAsync()))
                        {
                            if (chkGenNow.Active)
                            {
                                var newLabel = await retag.ImproveLabel(iActivated, attentionHandler.Image, grayscale, label);

                                Program.SaveLabel("./data/" + BDDP + "/labels/" + _name_ + ".txt", newLabel, attentionHandler.Image.Width, attentionHandler.Image.Height);
                            }
                            Program.SaveFile_("./data/" + BDDR + "/images/" + _name_ + ".jpg", attentionHandler.Image);
                            Program.SaveLabel("./data/" + BDDR + "/labels/" + _name_ + ".txt", label, attentionHandler.Image.Width, attentionHandler.Image.Height);
                            Program.SaveFile_("./data/" + BDDP + "/images/" + _name_ + ".jpg", applied);
                            Program.SaveFile_("./data/" + BDDP + "/images/" + _name_ + ".jpg", grayscale.ConvertTo <Pixel>());
                            model.HadChangedTraining();
                        }
                        DateTime endPopup = DateTime.Now;

                        lastUpdate += (endPopup - beginPopup);
                    }
                }
                catch (Exception e)
                {
                    MessageBox.ShowError(gtkWin, e.Message);
                }
                model.EndRun();
            }
            return(ret);
        }