Итак, я пытаюсь нарисовать круг после того, как нашел круг, используя SimpleShapeChecker() из переносимой библиотеки Accord.net, используя этот код:
// locate objects using blob counter
BlobCounter blobCounter = new BlobCounter( );
blobCounter.ProcessImage( bitmap );
Blob[] blobs = blobCounter.GetObjectsInformation( );
// create Graphics object to draw on the image and a pen
Graphics g = Graphics.FromImage( bitmap );
Pen redPen = new Pen( Color.Red, 2 );
// check each object and draw circle around objects, which
// are recognized as circles
for ( int i = 0, n = blobs.Length; i < n; i++ )
{
List<IntPoint> edgePoints = blobCounter.GetBlobsEdgePoints( blobs[i] );
Point center;
float radius;
if ( shapeChecker.IsCircle( edgePoints, out center, out radius ) )
{
g.DrawEllipse( redPen,
(int) ( center.X - radius ),
(int) ( center.Y - radius ),
(int) ( radius * 2 ),
(int) ( radius * 2 ) );
}
}
redPen.Dispose( );
g.Dispose( );
Однако и System.Drawing.Graphics, и System.Drawing.Pen показывают ошибку:
"inaccessible due to its protection level"
Поэтому я ничего не могу сделать после того, как нашел круг. Есть ли обходной путь для этого?