private void MoravecCornerDetection() { swMoravec.Reset(); // Used for timing functions. (good for testing changes in optimisation) swMoravec.Start(); MoravecCornerProperties mp = ControlPanel.Controls[0] as MoravecCornerProperties; processing = new FrmProcessing("Conducting Moravec Corner Detection"); processing.Show(); Log("Conducting Moravec Corner Detection"); SetStatus("Please wait for corner detection"); Moravec m = new Moravec(CurrentImage); m.ImageComplete += m_ImageComplete; m.LogMessage += m_LogMessage; Task mt = new Task(() => m.GetCorners(mp.Threshold, mp.Window)); mt.Start(); }
private void MoravecCornerDetection() { swMoravec.Reset(); // Used for timing functions. (good for testing changes in optimisation) swMoravec.Start(); if (ModificationPropertiesLog != null) { ModificationPropertiesLog("Conducting Moravec Corner Detection"); } Moravec m = new Moravec(CurrentImage); m.ImageComplete += m_ImageComplete; m.LogMessage += m_LogMessage; Task mt = new Task(() => m.GetCorners(mp.Threshold, mp.Window)); mt.Start(); }
private void btnProcess_Click(object sender, EventArgs e) { switch (lbMethods.SelectedIndex) { case (int)Methods.none: break; case (int)Methods.Susan: ssw = new Stopwatch(); // Used for timing functions. (good for testing changes in optimisation) SusanCornerProperties sp = ControlPanel.Controls[0] as SusanCornerProperties; processing = new FrmProcessing("Conducting Susan Corner Detection"); processing.Show(); Log("Conducting Susan Corner Detection"); SetStatus("Please wait for corner detection"); Susan s = new Susan(CurrentImage); s.ImageComplete += s_ImageComplete; Task st = new Task(() => s.GetCorners(sp.DifferenceThreshold, sp.GeometricalThreshold)); ssw.Start(); st.Start(); break; case (int)Methods.Moravec: smw = new Stopwatch(); // Used for timing functions. (good for testing changes in optimisation) MoravecCornerProperties mp = ControlPanel.Controls[0] as MoravecCornerProperties; processing = new FrmProcessing("Conducting Moravec Corner Detection"); processing.Show(); Log("Conducting Moravec Corner Detection"); SetStatus("Please wait for corner detection"); Moravec m = new Moravec(CurrentImage); m.ImageComplete += m_ImageComplete; m.LogMessage += m_LogMessage; Task mt = new Task(() => m.GetCorners(mp.Threshold, mp.Window)); smw.Start(); mt.Start(); break; default: break; } }
private void FindPointButton_Click(object sender, EventArgs e) { if (RB_DoMoravec.Checked == true) { double minValue = Convert.ToDouble(textBox1.Text); int windowSize = Convert.ToInt32(textBox2.Text); int shiftSize = Convert.ToInt32(textBox3.Text); int locMaxRadius = Convert.ToInt32(textBox4.Text); List <InterestingPoint> MoravecMatrix = Moravec.DoMoravec(minValue, windowSize, shiftSize, locMaxRadius, _image); if (filter_checkBox.Checked == true) { int maxCountPoints = Convert.ToInt32(textBox7.Text); List <InterestingPoint> subList = NonMaximumSuppression.FilterA(_image, MoravecMatrix, maxCountPoints); // Фильтр точек label9.Text = "Найдено интересных точек: " + MoravecMatrix.Count; label10.Text = "Отображенно интересных точек: " + subList.Count; DrawPoints(subList); } else { label10.Text = "Отображенно интересных точек: " + MoravecMatrix.Count; label9.Text = "Найдено интересных точек: " + MoravecMatrix.Count; DrawPoints(MoravecMatrix); } } if (RB_DoHarris.Checked == true) { double minValue = Convert.ToDouble(textBox5.Text); int windowSize = Convert.ToInt32(textBox6.Text); List <InterestingPoint> HarrisMatrix = Harris.DoHarris(minValue, windowSize, _image); /////////// #region Отклик кнопок if (checkBox2.Checked == true) { List <InterestingPoint> SubHarrisMatrix = Harris.DoHarris(minValue, windowSize, _image); label9.Text = "Найдено откликов: " + SubHarrisMatrix.Count; DrawMap(SubHarrisMatrix, _image); } else if (checkBox1.Checked == true) { List <InterestingPoint> SubHarrisMatrix = Harris.DoHarris(minValue, windowSize, _image); DrawMap(SubHarrisMatrix, _image); label9.Text = "Найдено локальных максимумов: " + SubHarrisMatrix.Count; } else if (filter_checkBox.Checked == true) { int maxCountPoints = Convert.ToInt32(textBox7.Text); List <InterestingPoint> subList = NonMaximumSuppression.FilterB( HarrisMatrix, maxCountPoints ); // Фильтр точек DrawPoints(subList); label9.Text = "Найдено интересных точек: " + HarrisMatrix.Count; label10.Text = "Отображенно интересных точек: " + subList.Count; } else { label10.Text = "Отображенно интересных точек: " + HarrisMatrix.Count; label9.Text = "Найдено интересных точек: " + HarrisMatrix.Count; DrawPoints(HarrisMatrix); } #endregion } }