如何使用AForge(IsCircle功能)检测黑色圆圈,因为它需要带有黑色背景的图像?

时间:2012-08-19 12:51:15

标签: c# image-processing aforge

我有一块带有石块的Go板图片。我需要检测这些石头。我正在尝试AForge's IsCircle Function但是图片的背景必须首先变为黑色。但我需要检测黑圈。

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

1 个答案:

答案 0 :(得分:1)

你可以将黑色像素转换为白色像素和白色像素转换为黑色像素然后使用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);