Обнаружение белого каплиC#

Место общения программистов C#
Ответить
Anonymous
 Обнаружение белого капли

Сообщение Anonymous »

Я пытаюсь использовать aforge.net для обнаружения толстой белой линии по изображению. />
У меня есть пример кода от обнаружения равносторонних форм, но я не знаю, актуально ли это. < /p>

public void DetectQuadrilateralType(Bitmap bitmap)
{
BlobCounter blobCounter = new BlobCounter();
blobCounter.ProcessImage(bitmap);
Blob[] blobs = blobCounter.GetObjectsInformation();
//Graphics object to draw
Pen pen;
Graphics g = Graphics.FromImage(bitmap);
SimpleShapeChecker shapeChecker = new SimpleShapeChecker();

for (int i = 0; i < blobs.Length; i++)
{
List edgePoints = blobCounter.GetBlobsEdgePoints(blobs);
List corners;

if (i < edgePoints.ToArray().Length && i > -1)
{
try
{
if (shapeChecker.IsConvexPolygon(edgePoints, out corners))
{
PolygonSubType subType = shapeChecker.CheckPolygonSubType(corners);

pen = new Pen(colors[subType], 2);
g.DrawPolygon(pen, ToPointsArray(corners));
pen.Dispose();
}
}
catch (Exception e) { }
}
}
g.Dispose();
}
< /code>

Вот изображение. C# /. Net Я бы очень ценил это. < /P>

Код выше обнаруживает только ребра, поэтому он обнаружит форму только в том случае, если он имеет острый край, который редко будет иметь редко. />public void DetectBigBlobs(Bitmap bitmap)
{
BlobCounter blobCounter = new BlobCounter();
blobCounter.ProcessImage(bitmap);
Rectangle[] rects = blobCounter.GetObjectsRectangles();
//Graphics object to draw
Pen pen = new Pen(Color.Red, 2);
Graphics g = Graphics.FromImage(bitmap);

foreach (Rectangle rect in rects)
{
if (rect.Width > 200 && rect.Height > 150)
{
g.DrawRectangle(pen, rect);
}
}

pen.Dispose();
g.Dispose();
}
< /code>

Должен быть лучший способ, чем использовать фиксированную ширину (потому что они могут сильно различаться) < /p>

Подробнее здесь: https://stackoverflow.com/questions/979 ... -detection
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»