在图像 c# 中分隔字母

kad*_*dzu 5 c# image image-processing aforge

我有 6 个字母的图像,我希望将它分成 6 个图像,每个图像有 1 个字母。我正在使用这个功能:

public static List<UnmanagedImage> ApplyBlobExtractor (UnmanagedImage unmanaged)
        {
            // Extract blobs
            BlobCounter blobCounter  = new BlobCounter ();
            blobCounter.ObjectsOrder = ObjectsOrder.XY;
            blobCounter.ProcessImage (unmanaged);

            // Add blobs into list
            Blob[] blobs = blobCounter.GetObjects (unmanaged, false);
            List<UnmanagedImage> unmanagedList = new List<UnmanagedImage> (blobs.Length);
            foreach (Blob blob in blobs)
                unmanagedList.Add (blob.Image);

            return unmanagedList;
        }
Run Code Online (Sandbox Code Playgroud)

问题是有时字母相互接触,这使得函数将 2 个字母识别为一个字母。有没有办法改进我的功能或创建更好的功能?

这是给出错误结果的图像示例: 在此处输入图片说明

该功能给了我 2 个图像而不是 6 个。

图 1:在此处输入图片说明

图 2:在此处输入图片说明

Gwe*_*wen 1

您可以尝试使用聚类方法作为开始。

使用 python 的scikit 谱聚类进行快速测试给出了以下结果:

在此输入图像描述

我不知道 C# 中存在什么。