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

基于emgu或opencv图像中几种颜色的快速目标检测方法

  •  1
  • Sina  · 技术社区  · 8 年前

    这样做通过循环是非常缓慢的,我正在寻找最快的方式。 提前谢谢。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Hasan    7 年前

    您可以通过以下几个步骤完成:

    Image<Hsv, byte> hsv = original.Convert<Hsv, byte>()
    

    原来是你的形象,它可能是在任何图像类型。

       var m_Lower = new Hsv(mask.Hue - 5, mask.Satuation - 5, mask.Value - 5);
       var m_Higher = new Hsv(mask.Hue + 5, mask.Satuation + 5, mask.Value + 5);
       Image<Gray, byte> huefilter = hsv.InRange(m_Lower, m_Higher);
    

    3-合并它们,最快的方法是将它们转换为位图并保存(或不保存),然后合并它们

    Bitmap img3 = new Bitmap(huefilter.Width, huefilter.Height);
    Graphics g = Graphics.FromImage(img3);
    foreach (string file in files)
    {
     img = new Bitmap(file);
     img.MakeTransparent(Color.White);
     g.DrawImage(img, new Point(0, 0));
     }