我有一张带有一些石头的围棋棋盘图像。我需要检测这些石头。我正在尝试AForge 的 IsCircle 函数 ,但图像的背景必须先变为黑色。但我需要检测黑圈。
可能吗?或者是否有其他库(OpenCV)的其他解决方案?
我有一张带有一些石头的围棋棋盘图像。我需要检测这些石头。我正在尝试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);