private void перестроитьToolStripMenuItem_Click(object sender, EventArgs e) { try { infoexcel.Text = "Перестройка файла"; var Rsize = GrayImg.ResizeImg((int)valueX.Value, (int)valueY.Value); var imgCanny = GrayImg.ApplyCanny(100, 150, Rsize.Item1, Rsize.Item2, img); FindContours(imgCanny); } catch (Exception ex) { MessageBox.Show(ex.Message + " Попытка перестроить нулевое изображение"); } }
//---------------------------------------Модуль для обработки Accord (ключевых точек)---------------------------------------// void CornerFound(params object[] list) { if (list.Length != 1) { double sigma = (double)list[3]; double k = (double)list[1]; int threshold = (int)list[2]; // Create a new Harris Corners Detector using the given parameters HarrisCornersDetector harris = new HarrisCornersDetector((float)k) { Threshold = (float)threshold, Sigma = sigma }; // Create a new AForge's Corner Marker Filter CornersMarker corners = new CornersMarker(harris, Color.White); // input.RotateFlip(RotateFlipType.Rotate180FlipX); var OriginCorner = harris.ProcessImage((Bitmap)list[0]); // ОРИГИНАЛ var CornerRrev = corners.Apply((Bitmap)list[0]); var Picture = GrayImg.ResizeImg(pictureBox1.Height, pictureBox1.Width); // подгонка для первоначального показа Bitmap endpick = new Bitmap(CornerRrev, new Size(Picture.Item2, Picture.Item1)); pictureBox1.Image = endpick; CreateTable(OriginCorner);// построение таблицы key-точек } else { double sigma = (double)numSigma.Value; float k = (float)numK.Value; float threshold = (float)numThreshold.Value; // Create a new Harris Corners Detector using the given parameters HarrisCornersDetector harris = new HarrisCornersDetector(k) { Threshold = threshold, Sigma = sigma }; // Create a new AForge's Corner Marker Filter CornersMarker corners = new CornersMarker(harris, Color.White); // input.RotateFlip(RotateFlipType.Rotate180FlipX); var OriginCorner = harris.ProcessImage((Bitmap)list[0]); // ОРИГИНАЛ var CornerRrev = corners.Apply((Bitmap)list[0]); var Picture = GrayImg.ResizeImg(pictureBox1.Height, pictureBox1.Width); // подгонка для первоначального показа Bitmap endpick = new Bitmap(CornerRrev, new Size(Picture.Item2, Picture.Item1)); pictureBox1.Image = endpick; CreateTable(OriginCorner);// построение таблицы key-точек } }
//---------------------------------------Модуль для обработки меню---------------------------------------// private void открытьИзображениеToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); // диалог открытия изображения try { if (ofd.ShowDialog() == DialogResult.OK) { Image <Bgr, byte> _imgInput = new Image <Bgr, byte>(ofd.FileName);// инициализация обькта из переменной ofd infosize.Text = _imgInput.Width.ToString() + "*" + _imgInput.Height.ToString() + "px"; var imgCanny = GrayImg.ApplyCanny(100, 150, _imgInput.Width, _imgInput.Height, _imgInput); img2 = imgCanny; var Picture = GrayImg.ResizeImg(pictureBox1.Height, pictureBox1.Width);// подгонка для первоначального показа Image <Bgr, byte> PictureFirst = _imgInput.Resize(Picture.Item2, Picture.Item1, Inter.Linear); pictureBox1.Image = PictureFirst.Bitmap; FindContours(imgCanny); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }