囲碁盤に石を並べたイメージがあります。これらの石を検出する必要があります。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);