Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2019, 20:14   #1
Primitivno
Новичок
Джуниор
 
Аватар для Primitivno
 
Регистрация: 09.04.2019
Сообщений: 1
Вопрос openCV поиск объекта по цвету

Доброго времени суток всем. Мне необходимо задетектить объект по цвету на картинке, и в случае, если объект найден, произвести какие-либо действия. Сначала делал реализацию через GetPixel(), но программа работает страшно медленно, поэтому данный подход пришлось отбросить почти сразу же. Затем выбор пал на openCV, и вроде как у меня даже получилось выделить объект по цвету. Сложности начались далее, а именно, после определения объекта на картинке нифига не понятно что делать дальше. Код выглядит следующим образом:


Image<Bgr, Byte> imgWindowScreen;
Image<Gray, Byte> imgWindowScreenProcessed;
Bitmap bmpScreenshot;
System.Drawing.Graphics gfxScreenshot;
Size size = new Size(400, 120);

// получаем скриншот экрана
bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds. Width,
Screen.PrimaryScreen.Bounds.Height,
PixelFormat.Format32bppArgb);

gfxScreenshot = Graphics.FromImage(bmpScreenshot);

// получаем необходимую область экрана
gfxScreenshot.CopyFromScreen(700, 347, 0, 0, size);

// преобразовываем Bitmap -> Graphics для дальнейшей работы
imgWindowScreen = new Image<Bgr, Byte>(bmpScreenshot);

// получаем изображение в диапазоне цветов
imgWindowScreenProcessed = imgWindowScreen.InRange(new Bgr(3, 25, 82), new Bgr(50, 98, 200));

И вот тут и возникает сложность. Логика приложения следующая: если пиксели необходимого цвета на картинке есть, то произвести одни действия, если таких пикселей на картинке нет, то произвести другие действия. Вот как я могу определить, имеется ли пиксель необходимого цвета на картинке или нет? Должно получиться что то вроде этого:

if (picture has pixels of searched color) {some actions}
else {another actions}

Что должно стоять на месте "picture has pixels of searched color" в моей конструкции?

Буду очень благодарен за помощь!
Primitivno вне форума Ответить с цитированием
Старый 13.04.2019, 21:06   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

ну в чем проблема то.
Сделали InRange затем провели бинаризацию. получите области. Далее сегментация. Blob например. Получите куски изображения.
Там будут определенные характеристики каждого куска. Площадь и тому подобное.
И далее уже проверяйте все ваши остальные условия.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[РЕШЕНО][VB] Поиск значений по цвету и содержанию Тем:)ч Помощь студентам 8 17.05.2018 15:59
OpenCV Поиск контуров Olchic Visual C++ 0 07.10.2015 12:17
C# RGB поиск схожих по цвету пикселей. Упрощение изображения. zink Помощь студентам 1 08.11.2014 22:09
Поиск значения по цвету и вставка в другую книгу rus33 Microsoft Office Excel 2 08.11.2012 08:11