не могли бы вы мне помочь. Я отфильтровал изображение, и вот результат.
На исходном изображении точка красная. Как мне отслеживать координаты этой точки? Вот код отвечающий за фильтрацию изображения и поиск.
public PointF FindCircle(Bitmap img, out Bitmap imageHandle)
{
img = img.Clone(Rectangle, img.PixelFormat);
mainImage = new Emgu.CV.Image<Emgu.CV.Structure.Bgr, byte>(img);
processedImage = mainImage.InRange(new Emgu.CV.Structure.Bgr(ColorData.Lower.Blue, ColorData.Lower.Green, ColorData.Lower.Red), new Emgu.CV.Structure.Bgr(ColorData.Upper.Blue, ColorData.Upper.Green, ColorData.Upper.Red));
processedImage = processedImage.SmoothGaussian(9);
Emgu.CV.Structure.CircleF[] circles = processedImage.HoughCircles(new Emgu.CV.Structure.Gray(ColorData.LowerGray), new Emgu.CV.Structure.Gray(ColorData.UpperGray), 2, processedImage.Height / 4, Main.main.GetMinRadius(), Main.main.GetMaxRadius()).SelectMany(u => u.Select(s => s)).ToArray();
foreach (var c in circles)
{
Emgu.CV.CvInvoke.Circle(mainImage, new Point((int)c.Center.X, (int)c.Center.Y), 3, new Emgu.CV.Structure.MCvScalar(0, 255, 0), -1, Emgu.CV.CvEnum.LineType.AntiAlias, 0);
mainImage.Draw(c, new Emgu.CV.Structure.Bgr(Color.Red), 3);
}
imageHandle = processedImage.Bitmap;
return PointF.Empty;
}
Заранее спасибо.
Эта точка на хорошо оформленную окружность никак не тянет, и метод Хафа вряд ли сможет правильно найти её центр.
В данном случае, если на реальном отфильтрованном изображении нет помех, то достаточно найти максимум cvMinMaxLoc
или центр масс cvMoments
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
При нажатии на button на веб-странице появляется стандартное окно загрузки файлаИнтересует самый универсальный способ, подходящий под большинство...
Есть коллекция объектов, у каждого их которых есть свойство ParentIdЕсть ListBox, к которому привязана эта коллекция объектов
Нужен совет реализации след структуры1) форма 2) поток с таймером