1

背景を前景から分離し、バイナリ (黒/白) 画像を作成するために何らかの処理を行う画像があります。

AForge を使用すると、処理された画像からすべてのブロブを検出して返すことができます。

そこで、元の画像を「SourceImg」にコピーし、フィルタリングを行って背景を分離し、バイナリ画像にすると、適切にブロブ抽出を行うことができます。

    public static List<Bitmap> ApplyBlobExtractor(Bitmap SourceImg)
    {
        List<Bitmap> ImgLetters = new List<Bitmap>();
        AForge.Imaging.BlobCounter blobCounter = new AForge.Imaging.BlobCounter();

        // Sort order
        blobCounter.ObjectsOrder = AForge.Imaging.ObjectsOrder.XY;
        blobCounter.ProcessImage(SourceImg);
        AForge.Imaging.Blob[] blobs = blobCounter.GetObjects(SourceImg, false);

        // Adding images into the image list            
        AForge.Imaging.UnmanagedImage currentImg;
        foreach (AForge.Imaging.Blob blob in blobs)
        {
            currentImg = blob.Image;
            ImgLetters.Add(currentImg.ToManagedImage());
        }
        return ImgLetters;
    }

私が本当にやりたいことは、これらのブロブの情報を使用して、元の未処理の画像から位置を抽出することです。

理想的には、ブロブをクッキー カッターのように使用して、最初の未処理の画像ファイルからそれらを抽出したいと考えています。

4

2 に答える 2

1

ブロブの画像とソース画像を使用して、 AForge.Imaging.Filters.Intersectクラスを使用できます。

于 2012-09-27T05:12:13.090 に答える
0

画像処理の一部で元の画像のサイズが変更されなかったと仮定すると、切り抜きの四角形をブロブの Rectangle プロパティに設定して、元の画像に Crop 変換をループ適用してみませんか?

于 2012-09-26T20:06:48.913 に答える