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); }