//Filtr - Binaryzacja Niblacka private async void lokalnaToolStripMenuItem_Click(object sender, EventArgs e) { if (!Tools.ObrazKolor(obiektObrazek.Kopia)) { progressBar1.Value = 0; progressBar1.Visible = true; progressBar1.Maximum = obiektObrazek.Kopia.Width * obiektObrazek.Kopia.Height; var progress = new Progress <int>(value => { progressBar1.Value++; }); NiblackResult result = NiblackForm.NiblackExecute(); if (result.Result == DialogResult.OK) { DisableButtons(); opcja = 0; obiektObrazek.ClearNext(); obiektObrazek.AddOperation_toList(obiektObrazek.Kopia); obiektObrazek.Kopia = await Tools.PerformNiblack(obiektObrazek.Kopia, result.Parametr, result.Wymiary, progress); KopiaPictureBox.Size = obiektObrazek.Kopia.Size; Bitmap obrazek1 = Tools.Zoom(new Bitmap(obiektObrazek.Kopia), zoomFactor); KopiaPictureBox.Size = obrazek1.Size; KopiaPictureBox.Image = obrazek1; Center(); EnableButtons(); } } else { MessageBox.Show("Obraz musi być czarno-biały!", "", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } }
public static NiblackResult NiblackExecute() { var result = new NiblackResult(); while (true) { using (var form = new NiblackForm()) { form.OkButton.DialogResult = DialogResult.OK; form.AnulujButton.DialogResult = DialogResult.Cancel; result.Result = form.ShowDialog(); if (result.Result == DialogResult.OK) { result.Wymiary = int.Parse(form.szerokoscTextBox.Text); result.Parametr = parametr; if (nieparzysta) { return(result); } else { MessageBox.Show(@"Wartość okna musi być nieparzysta!", "", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } } if (result.Result == DialogResult.Cancel) { return(result); } } } }