Как нарисовать круг после обнаружения круга с помощью SimpleShapeChecker? (Портативный Accord.net)

Итак, я пытаюсь нарисовать круг после того, как нашел круг, используя 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"

Поэтому я ничего не могу сделать после того, как нашел круг. Есть ли обходной путь для этого?


person Harvey Oroceo    schedule 12.04.2016    source источник


Ответы (1)


Типы System.Drawing, представленные в пакете NuGet Shim Drawing, предназначены только для внутреннего использования соответствующими библиотеками Portable AccordPortable AForge).

Вместо того, чтобы использовать Graphics для рисования объекта изображения bitmap, вы должны вместо этого привести bitmap к соответствующему типу изображения на платформе, на которой вы работаете (WriteableBitmap в Windows, Android.Graphics.Bitmap в Android и CGImage в iOS) и использовать инструменты рисования, доступные на каждом конкретная платформа.

person Anders Gustafsson    schedule 12.04.2016
comment
Я понимаю. Спасибо. Я заработал. Я использовал WriteableBitmapEx для рисования круга. - person Harvey Oroceo; 13.04.2016