Jump to content
Compvision.ru
Sign in to follow this  
Dimondor

Подсчет объектов на конвейере

Recommended Posts

Есть задача подсчет объектов (около 100 разновидностей считается только один вид в текущем сеансе), на конвейере. Пишется все на winform vs2015, EMGU CV 3.2.0.2682. для разделения "слипшихся" контуров хотел использовать DistanceTransform, но результат все черное при любом изображении, при этом все остальные функции работают. Приложу пример кадров и результат бинаризации,  дайте совет как разделить объекты.

pict1.jpg

pict2.jpg

pict3.jpg

Share this post


Link to post
Share on other sites

Попробуй решить через площадь. Считай количество белых пикселей. Зная сколько пикселей в одном изделии легко считается количество на изображении.

Share this post


Link to post
Share on other sites

прошу прощения суть не в том, все происходит в движении, при попадании объекта в кадр он захватывается и ведется по венгерскому алгоритму, при этом контуры могут "плавать", каждый кадр о, обнаруженных объектах собирается простейшая информация, центр, площадь, длина, при пересечении линии счет идет, но если в кадр въехала длинная цепочка и она вся в кадр не влезла, вот тут и сложность как считать. Если изменить фильтры для более четкого выделения объекты "рассыпаются" в кучку мелких. Была мысль сделать разделение через  DistanceTransform, как в одном из советов про поиск контуров  камней тут на сайте, но эта функция не работает, ошибку не выдает и результата нет. Переписывал на c# пример из opencv 3.2 поиск контуров карт, не работает. Несколько вариантов еще есть, но сначала хочу сделать user control с выбором фильтров что то типа этого, но с выбором побольше. Поиграться с фильтрами сделать один поток слежения, а второй распознания и применять разные комбинации фильтров. 

, но с большими наворотами.

Да забыл дописать колебания контуров 10-15% поэтому считать всю площадь и делить не пойдет, большая погрешность.

Share this post


Link to post
Share on other sites

Ни на что не претендую, но как обещал выкладываю, думаю новичкам для ознакомления сгодится.Вещь сырая, но рабочая, причесывать некогда. Подключение идет к ip камере по rtsp, для обычной вебки заменить на capture = new VideoCapture();

Probe1.rar

Share this post


Link to post
Share on other sites

запустил я значит, а там необработанное исключение типа system.typeinitializationexception, ругалось на строку "  this.Filters1 = new Filters.Filters();", в итоге вроде запустилась просто пустая форма. что я не так сделал?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×