Самый быстрый способ обнаружения объектов, основанный на некоторых цветах изображения 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));
}
файлы являются сохраненными изображениями