Самый быстрый способ обнаружения объектов, основанный на некоторых цветах изображения emgu или opencv

У меня есть список некоторых определенных цветов в массиве (около 60 различных цветов, и они не находятся в диапазоне), я хочу обнаружить их в изображениях Emgucv или opencv. На самом деле я собираюсь обнаружить некоторые объекты по их цветам, и я не хочу сейчас делать это с помощью методов ИИ. Делать это через цикл очень медленно, я ищу самый быстрый способ. Заранее спасибо.

0 ответов

Вы можете сделать это в несколько шагов:

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

файлы являются сохраненными изображениями

Другие вопросы по тегам