我有一块带有石块的Go板图片。我需要检测这些石头。我正在尝试AForge's IsCircle Function但是图片的背景必须首先变为黑色。但我需要检测黑圈。
有可能吗?或者是否有其他库(OpenCV)的其他解决方案?
答案 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);