【问题标题】:Fastest way for object detection based on some colors in image by emgu or opencvemgu 或 opencv 基于图像中某些颜色的对象检测的最快方法
【发布时间】:2019-03-05 06:05:05
【问题描述】:

我有一个数组中某些颜色的列表(大约 60 种不同的颜色,它们不在一个范围内),我想通过 Emgucv 或 opencv 在图像中检测它们。 实际上我要通过颜色来检测一些物体,我现在不想通过人工智能方法来做。 通过循环执行此操作非常慢,我正在寻找最快的方法。 提前致谢。

【问题讨论】:

    标签: c# opencv object-detection emgucv


    【解决方案1】:

    您只需几个步骤即可完成:

    1- 只需按照以下代码将您的图像转换为 HSV 域

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

    原始图像是您的图像,它可能是任何图像类型。

    2- 过滤你的图片:

       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));
     }
    

    文件是保存的图像

    【讨论】:

      猜你喜欢
      • 2018-07-22
      • 1970-01-01
      • 2013-07-16
      • 1970-01-01
      • 2021-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      相关资源
      最近更新 更多