0

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

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

4

1 回答 1

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);
于 2012-09-24T10:02:24.237 回答