我如何用AForge(IsCircle函数)检测黑圈,因为它需要一个黑色背景的图像



我有一张围棋棋盘的图片,上面有一些石头。我需要探测这些石头。我在尝试AForge的IsCircle函数,但图像的背景必须先变成黑色。但我需要检测黑圈。

有可能吗?或者有其他库(OpenCV)的其他解决方案吗?

您可以将黑色像素转换为白色像素,将白色像素转换为黑色像素,然后使用Iscircle函数检测圆圈。这里是使用Aforge.net 转换的代码

 Bitmap orig = (Bitmap)pictureBox1.Image;
            Bitmap clone = new Bitmap(orig.Width, orig.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
            using (Graphics gr = Graphics.FromImage(clone))
            {
                gr.DrawImage(orig, new Rectangle(0, 0, clone.Width, clone.Height));
          }
            FiltersSequence commonSeq = new FiltersSequence();
            commonSeq.Add(Grayscale.CommonAlgorithms.BT709);
            commonSeq.Add(new BradleyLocalThresholding());
            commonSeq.Add(new DifferenceEdgeDetector());
            Bitmap temp = commonSeq.Apply(clone);

最新更新