Теперь в нашем онлайн-магазине доступна уникальная книга «BEAM-робототехника. От азов до создания практических устройств», идеально подходящая как для кружков робототехники, так и для самообучения дома. Вы можете приобрести её по привлекательной цене в 699 рублей. Дополнительная информация о книге доступна на нашем сайте. Также в ассортименте нашего онлайн-магазина представлены готовые наборы для сборки роботов, с помощью которых ваш ребенок сможет легко собрать своего первого робота, следуя нашим подробным инструкциям. Перейти в магазин
Иногда нужно выделить на изображении объект определённого цвета, для этого подходить RBG фильтр. Если разбить цветное изображение на несколько каналов и над каждым из них проделать пороговое преобразование, то если применить к получившимся изображениям логическую операцию И, получим черно-белое изображение, где белым цветом будут выделены объекты выбранного цвета. Звучит сложно и не понятно, но на примере всё будет проще и нагляднее. Цвет, который нужно выделить задается 6-ю параметрами: Rmin, Rmax, Gmin, Gmax, Bmin, Bmax при помощи ползунков (trackBar). Для того, чтобы удобнее было применять фильтр, напишем отдельный метод:
Code
private Image<Gray, Byte> RGBFilter(Image<Bgr,Byte> input, Gray Rmin, Gray Rmax, Gray Gmin, Gray Gmax, Gray Bmin, Gray Bmax, int dialate) { Image<Gray, Byte> result = new Image<Gray, byte>(input.Width, input.Height); Image<Gray, byte>[] chanels = input.Split(); chanels[0] = chanels[0].InRange(Rmin, Rmax); chanels[1] = chanels[1].InRange(Gmin, Gmax); chanels[2] = chanels[2].InRange(Bmin, Bmax); result = chanels[0].And(chanels[1]); result = result.And(chanels[2]); result = result.Dilate(dialate); return result; }
Если передать этому методу исходное цветное изображение, параметры Rmin....Gmax и параметр dialate, который отвечает за степень размытия изображения на выходе, то получим то самое, черно-белое изображение, на котором белым цветом будут выделены объекты заданного цвета. Давайте попробуем выделить на фото со светофором жёлтый фонарь:
Видите, как здорово? Такой фильтр применен в программе для поиска цветных маяков.
К теме приложен проект этой короткой программы с коментариями. Проект разбит на 2 архива. Открывать проект при помощи Visual C# Express 2008 или при помощи Visual Studio 2008 Pro, можно открыть и любой другой студией вообщем-то. Скачать проект.
Общайтесь с друзьями в нашем Online-чате по робототехнике
Мы рады, что в России открывается все больше кружков по робототехнике и мы стараемся прикладывать к этому свои усилия начиная с 2008 года :) Мы будем очень рады видеть в чате живое общение, обмен опытом между учащимися в робототехнике и просто увлеченными в этом направлении людей. Мы всегда онлайн, приходите, спрашивайте, помогайте другим - давайте сделаем Мир чуточку лучше!
Чтобы не потерять чат и быть всегда с нами на связи - откройте окно чата в новом окне браузера и добавьте его в заколадки. Открыть в новом окне