1

私は現在、C# と AForge.NET を使用して文字認識用のプログラムに取り組んでおり、ブロブの処理に苦労しています。

これは私がブロブを作成した方法です:

BlobCounter bcb = new BlobCounter();
            bcb.FilterBlobs = true;
            bcb.MinHeight = 30;
            bcb.MinWidth = 5;
            bcb.ObjectsOrder = ObjectsOrder.XY;
            bcb.ProcessImage(image);

また、それらを長方形でマークしました。

Rectangle[] rects;
rects = bcb.GetObjectsRectangles();
Pen pen = new Pen(Color.Red, 1);
Graphics g = Graphics.FromImage(image);

foreach (Rectangle rect in rects)
{
     g.DrawRectangle(pen, rect);
}

実行後、参照イメージは次のようになります。

ブロブイメージ ブロブイメージ

ご覧のとおり、ほぼすべての文字が認識されます。残念ながら、"g"、"o"、"d" などの一部の文字は、blob 内に blob を含みます。

別のブロブ内にあるブロブを排除したいと思います。

目的を達成するために、長方形の描画を調整しようとしました。

foreach (Rectangle rect in rects)
{

    for (int i = 0; i < (rects.Length - 1); i++)
    {
         if (rects[i].Contains(rects[i + 1]))
             rects[i] = Rectangle.Union(rects[i], rects[i + 1]);

    }
    g.DrawRectangle(pen, rect);
}

…が、全然うまくいきませんでした。

多分あなたの何人かは私を助けることができますか?

4

1 に答える 1