代码之家  ›  专栏  ›  技术社区  ›  AndrewS

符号/图像分类建议

  •  4
  • AndrewS  · 技术社区  · 14 年前

    我看过一些 examples of image detection using Emgu CV (OpenCV的.Net包装)。然而,我发现的例子和教程似乎专门处理图像检测,而不是分类。我不需要在更大的图像中找到图像的实例,只需要确定图像中的符号类型。

    似乎有各种各样的方法可供选择 我不知道从哪里开始。任何建议或有用的链接将不胜感激。

    3 回复  |  直到 14 年前
        1
  •  2
  •   carlosdc    14 年前

    你也许应该看看这篇论文:基于梯度的学习应用于文档识别,尽管它涉及手写字母和数字。你也应该读一下贝隆吉和马利克关于形状上下文的文章。你应该寻找的关键词是数字/字符/形状识别(不是检测,不是分类)。

        2
  •  2
  •   Mikos    14 年前

    如果您使用的是EmguCV,那么SURF特性示例(StopSign detector)将是一个很好的起点。另一种(可能是互补的)方法是使用MatchTemplate(..)方法。

    然而,我发现的例子和教程 似乎专门处理图像 检测而不是分类。我 在一个更大的图像中的图像,只是 确定符号的类型

    通过在图像中查找符号的实例,可以 实际上是对它进行了分类。不知道为什么你认为那不是你需要的。

        Image<Gray, float> imgMatch = imgSource.MatchTemplate(imgTemplate, Emgu.CV.CvEnum.TM_TYPE.CV_TM_CCOEFF_NORMED);
    
            double[] min, max;
            Point[] pointMin, pointMax;
            imgMatch.MinMax(out min, out max, out pointMin, out pointMax);
    //max[0] is the score
            if (max[0] >= (double) myThreshold)
            {
                Rectangle rect = new Rectangle(pointMax[0], new Size(imgTemplate.Width, imgTemplate.Height));
                imgSource.Draw(rect, new Bgr(Color.Aquamarine), 1);
            }
    

    max[0]给出了最佳匹配的分数。

        3
  •  1
  •   Aditya Mukherji    14 年前


    把画布分成n个正方形或矩形块。

    对于每个块,可以测量该块中黑色像素的数量或黑白比例,并将其视为特征。

    现在您可以将图像表示为特征向量(每个特征源自不同的块),您可以使用许多标准分类算法来预测图像属于哪一类。