Введение В предыдущая статья Мы рассмотрели распространение волновых нейронов, и теперь нам нужно рассмотреть дескриптор активных (красных) нейронов.
В этой статье будет предложен простой метод описания контура, образованного вокруг черного изображения.
Теория Напомню, что изображение у нас черно-белое.
Мы пишем условие активации белых пикселей тогда и только тогда, когда рядом с белым пикселем находится только один или несколько черных пикселей.
В данном случае мы окрашиваем белый пиксель в красный цвет. То есть мы получаем сплошной контур.
Цель этой статьи — дать краткое описание набора красных пикселей.
Рассмотрим простое трехцветное изображение.
Изображение
Начинаем сканировать изображение сверху вниз справа налево, пока не найдём первый красный пиксель.
Как только мы его найдём, мы покрасим его в зелёный цвет и сохраним этот пиксель в отдельный массив для анализа.
Изображение
Далее вам нужно найти красный пиксель, ближайший к зеленому.
Есть два пикселя.
Если взять один из пикселей, то будет обход по часовой стрелке, если взять другой пиксель, то будет обход против часовой стрелки.
Заранее скажу, что результат не изменится, идем ли мы против или по часовой стрелке.
Изображение
В данном случае я обхожу красные пиксели по часовой стрелке.
Все то же самое, если мы видим красный пиксель рядом с зеленой клеткой, то мы заменяем его (красный пиксель) на зеленый и вводим в массив координаты красного пикселя, который был заменен на зеленый.
Также перемещаем положение сканирования точек.
Изображение
Теперь важный момент. Мы достигли точки, когда значение y предыдущего зеленого пикселя меньше текущего значения y зеленого пикселя.
Поскольку значение текущего пикселя больше предыдущего, мы добавляем его в массив дескрипторов волнового фронта.
Изображение
Продолжаем обходить контур и помещать единицы в массив дескрипторов.
Изображение
Так как при обходе контура на картинке положение красных пикселей по y не меняется, соответственно, мы не добавляем единицы в массив дескрипторов.
Изображение
Здесь значение y текущего пикселя меньше предыдущего.
Поэтому мы запишем в массив -1. Изображение
Здесь состояние пикселей по y также не изменилось, поэтому в массив мы тоже ничего не добавляем.
Изображение
Поздравляем! Мы обошли контур.
Если есть подобные контуры, их тоже обходим.
Изображение
Теперь вы можете упростить запись и удалить повторяющиеся элементы.
Таким образом, для данного фрагмента черных пикселей дескриптор волнового фронта будет равен (1,-1) Работа программы.
Также хотелось бы показать работу программы, которая работает с изображениями и вычисляет их контуры.
Эта программа выбирает бинарное (черно-белое) изображение из исходного изображения, состоящего из нескольких цветов.
Эта программа также создает красные контуры между белым и красным цветами.
Давайте посмотрим, как работает программа, на следующих примерах.
Изображение
Так выглядит программа при запуске Изображение
Нажмите кнопку открыть файл Изображение
При скачивании файл будет отображаться в двух окнах Изображение
Нажмите на кнопку «вперед».
Начинаем сканировать контур изображения сверху вниз и получаем контур.
Сначала контур идет сверху вниз, и значения положительные, затем контур идет вниз, и значения отрицательные.
Поэтому мы получаем значения 1,-1 Изображение
Мы будем продолжать нажимать кнопку «вперед», пока не получим другое значение контура.
Теперь значение контура равно 1, -1, 1, -1. Почему это.
Если мы присмотримся, то увидим углубление в контуре.
Сначала контур идет сверху вниз, получаем положительные значения, затем идем снизу вверх, получаем отрицательные значения, потом снова идем сверху вниз, получаем положительные значения и снова снизу вверх top и снова получаем отрицательные значения.
Поэтому мы получаем значения 1, -1, 1, -1
Продолжим нажимать кнопку вперед. Изображение
Увы, значение контура не меняется.
Однако все верно.
Контур рассчитан правильно.
Продолжайте нажимать кнопку «вперед».
Изображение
Никаких изменений нет. Всё хорошо.
Изображение
Мы дошли до конца.
Значения контура также не изменились.
Все правильно.
Нажмите на кнопку сканирования.
Изображение
Программа подумает и выдаст следующий результат.
В этом случае мы получим немного другой результат. Программа сканирует изображение и записывает контуры, отличающиеся друг от друга.
Сначала мы получили значение 1, -1 и его записываем.
Затем пишем значение 1, -1, 1, -1 несколько раз.
Удаляем повторяющиеся элементы.
Получаем соответствующий результат. {{1,-1}}{{1,-1,1,-1}} Следующая статья здесь Спасибо за прочтение статьи Теги: #Алгоритмы #AI #MachineAnalyzer ##MachineAnalyzer #MachineAnalyzer #MachineAnalyzer #Дескриптор волнового фронта
-
Шуточный Конкурс С Хорошими Призами 2.0
19 Oct, 24 -
Конкурс Дизайна Livestreet
19 Oct, 24 -
Tesla Motors Становится Прибыльной
19 Oct, 24 -
Статистика И Пассивное Продвижение
19 Oct, 24