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

Компьютерное зрение. Урок 17. Детектор Кэнни. Продолжение.

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

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


На прошлом уроке я обещал  разработку алгоритма продолжения линий контура от точек, выделенных первым порогом, до точек, выделенных вторым порогом (метод гистерезиса). Напомню, что эти два порога мы применяем к изображению, которое получено путем фильтрации фильтром Собеля + Гаусса. Такой фильтр выделяет границы контура, которые мы впоследствии утоньшаем. Все это мы делали на прошлом уроке.

Итак, суть обещанного алгоритма. Посмотрите на картинку:

Компьютерное зрение. Урок 17. Детектор Кэнни. Продолжение.

Пусть отмеченная точка – край. ...

....

Здесь мы отмечаем точки утоньшенного контура, которые проходят высший порог:

Компьютерное зрение. Урок 17. Детектор Кэнни. Продолжение.

Давайте посмотрим картинку в увеличеном виде:

Компьютерное зрение. Урок 17. Детектор Кэнни. Продолжение.
 

....

Итак, смотрим результат:

Компьютерное зрение. Урок 17. Детектор Кэнни. Продолжение.

И в увеличенном виде:

Компьютерное зрение. Урок 17. Детектор Кэнни. Продолжение.

Правда, тут у нас есть один недочет. Вот тут алгоритм не нашел конец:

Компьютерное зрение. Урок 17. Детектор Кэнни. Продолжение.

Хотя, сработал он правильно, так как мы и задумали - если у точки хотя бы два соседа, значит, это не концевая точка. Исправить данный недочет можно, если добавить в программу дополнительное условие - соседи не должны стоять рядом друг с другом. Для добавления этого условия разработаем еще один метод у класса RGBFrame - list_neighbors:

        /// <summary>

        /// Посчитать список соседей данной точки

        /// </summary>

        /// <param name="x">координата x точки</param>

        /// <param name="y">координата y точки</param>

        /// <returns>Количество соседей</returns>

        public List<Point> list_neighbors(int x, int y)

        {

            List<Point> res = new List<Point>();

            if (is_neighbor(x - 1, y - 1)) res.Add(new Point(x-1,y-1));

            if (is_neighbor(x, y - 1)) res.Add(new Point(x, y - 1));

            if (is_neighbor(x + 1, y - 1)) res.Add(new Point(x + 1, y - 1));

            if (is_neighbor(x + 1, y)) res.Add(new Point(x + 1, y));

            if (is_neighbor(x + 1, y + 1)) res.Add(new Point(x + 1, y + 1));

            if (is_neighbor(x, y + 1)) res.Add(new Point(x, y + 1));

            if (is_neighbor(x - 1, y + 1)) res.Add(new Point(x - 1, y + 1));

            if (is_neighbor(x - 1, y)) res.Add(new Point(x - 1, y));

            return res;

        }

И его мы используем в ...

...

...

Последнее обновление ( 12.07.2016 г. )
 
« След.   Пред. »
 
© 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 рабочих дня.
узнать больше
Платежные терминалы
Оплата покупок в терминалах крупнейших платежных систем в любом городе России - быстро и без комиссии.
узнать больше