Подсчет одинаковых объектов.

Компьютерное зрение, OpenCV

Подсчет одинаковых объектов.

Сообщение Razangann » 10 дек 2016, 11:06

Здравствуйте!
Имеется конвеер по которому едут объекты. Нужно подсчитать количество.
Камера снимает потоковое видео и передает на комп.
Нашел библиотеку OpenCV, прочитать статьи про поиск по шаблону, поиск контура, поиск по цвету.
В моем примере белые объекты по форме эллипса движутся по черному фону.
Мои мысли: можно использовать поиск по шаблону, а в качестве шаблона использовать белый прямоугольник или квадрат. В любой эллипс можно вписать квадрат, по этому никто не проскочет, да и если 2 объекта рядом, то как один не определиться...:)
Скажите пожалуйста, правильно ли я мыслю что нужно идти таким путем? Или нужно искать контур, цвет или еще что-то...
Еще малость озадачен, сказал последнюю версию библиотеки (2413), а в примерах как я понял более старая...некоторые функции изменены...Есть ли уроки с новой версией или проще будет поставить старую(какую?) :)
Спасибо:)

Реализовал поиск по шаблону,отчётливо находит нужный объект, но теперь новая задача, я делал как в уроке, ищем по шаблону, а затем по максимуму/минимум определяем объект. Проблема в том, что таким методом находится первая подходящая точка, а нужно все, которые совпадают (несколько объектов).
Код: Выделить всё
cvMatchTemplate( image ,mask , result, 0);
cvNormalize(result, result, 1, 0, CV_MINMAX);
double    minval, maxval;
CvPoint    minloc, maxloc;
cvMinMaxLoc(result, &minval, &maxval, &minloc, &maxloc, 0);
cvRectangle(image, cvPoint(minloc.x, minloc.y), cvPoint(minloc.x + mask->width - 1, minloc.y + mask->height - 1), CV_RGB(255, 0, 0), 1, 8);
cvShowImage("Match", image);
Razangann
 
Сообщения: 1
Зарегистрирован: 10 дек 2016, 10:59
programming: c++ c# java

Re: Подсчет одинаковых объектов.

Сообщение noonv » 12 дек 2016, 13:14

Использовать С-ный интерфейс не обязательно (а если реализуете на С++, то и не имеет смысла) - лучше перейти на интерфейс С++.

см. Template Matching

Можно либо "замазать" найденный максимум/минимум или реализовать свой метод поиска, который будет выделять все найденные экстремумы.
Аватара пользователя
noonv
Администратор
 
Сообщения: 527
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++


Вернуться в Компьютерное зрение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

© 2009-2016 |  О проекте