Программирование - это просто
Advertisement
Главная arrow Искусственный интеллект arrow Искусственный интеллект arrow Компьютерное зрение (платный раздел). arrow Компьютерное зрение. Урок 25. Разметка связных областей
26.04.2018 г.
Главное меню
Главная
Системный подход
Интернет магазин
Биржевые роботы
Программные продукты
Математика и информатика
1С:Предприятие
C#, Delphi, VB, F#, Web и пр.
Искусственный интеллект
Услуги
Ча. Во. (FAQ)
Платный раздел
Наука для чайников
Разное
Размышления
Карта сайта
Друзья сайта
Excel-это не сложно
Все о финансах
Компьютерное зрение. Урок 25. Разметка связных областей Печать E-mail
Автор megabax   
19.02.2017 г.
New Page 1

Компьютерное зрение. Урок 25. Разметка связных областей

Чтобы смотреть урок полностью, а также скачать исходники к уроку, подпишитесь на платный раздел.

В платном разделе статья находится здесь.


Итак на прошлом уроке мы с вами изучили методы математической морфологии, при помощи которых улучшили изображения, полученное бинаризацией фотографии (урок 23). Что дальше? А дальше нам надо как-то распознать выделенные объекты. Для начала необходимо произвести выделение связных областей. Как мы это будет делать? Очень просто. Берем пиксель, смотрим его соседей и тоже выделяем их, если они находятся в белой области. Далее, у каждого соседа смотрим соседей и так до тех пор, пока все не выделим:

Компьютерное зрение. Урок 25. Разметка связных областей

Напомню, что алгоритмы ...

...

...

... Итак, тестируем:

        private void btnSegmentation_Click(object sender, EventArgs e)

        {

            int size = 21;

            int[,] mask = mathematical_morphology(size);

            Segmentation segmentation = new Segmentation();

            segmentation.hsv_frame = hsv_frame;

 

            for (int i = 0; i < segmentation.hsv_frame.width; i++)

            {

                for (int j = 0; j < segmentation.hsv_frame.height; j++)

                {

                    if (segmentation.hsv_frame.matrix[i, j].V > 0.5) segmentation.hsv_frame.matrix[i, j].V = 1;

                    else segmentation.hsv_frame.matrix[i, j].V = 0;

                    segmentation.hsv_frame.matrix[i, j].S = 0;

                    segmentation.hsv_frame.matrix[i, j].H = 0;

                }

            }

 

            segmentation.exec();

            HSVFrame res = segmentation.visual_segmentation(true, false);

            res.create_picture();

            pbImage.Image = res.picture;

        }

Смотрим результат:

Компьютерное зрение. Урок 25. Разметка связных областей

Вот такой была исходная картинка:

Компьютерное зрение. Урок 25. Разметка связных областей

Если хотим показать только контур, то просто во втором параметре метода visual_segmentation указываем true:

Компьютерное зрение. Урок 25. Разметка связных областей

Итак, у нас есть выделенные объекты. Что с ними делать дальше? А дальше мы будем вычислять их инвариантные характеристики, но это уже будет на следуюем уроке.

 

Последнее обновление ( 19.02.2017 г. )
 
« След.   Пред. »
 
© 2018 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги
Мы принимаем
Банковские карты
Оплатите покупку в интернет-магазине банковскими картами VISA и Mastercard любого банка.
узнать больше
Электронный кошелек
Моментальная оплата покупок с помощью вашего электронного кошелька RBK Money.
узнать больше
Банковский платеж
Оплатите покупку в любом российском банке. Срок зачисления средств на счет - 3-5 рабочих дней.
узнать больше
Денежные переводы
Оплата покупок через крупнейшие системы денежных переводов CONTACT и Unistream.
узнать больше
Почтовые переводы
Оплатите покупку в любом отделении Почты России. Срок зачисления платежа - 3-4 рабочих дня.
узнать больше
Платежные терминалы
Оплата покупок в терминалах крупнейших платежных систем в любом городе России - быстро и без комиссии.
узнать больше