Контурный анализ и его применение для распознавания объектов
Аннотация
В данной работе изложены методы контурного анализа для распознавания образов на примерах распознавания простых объектов. Описаны необходимый математический аппарат, теоретическая часть контурного анализа. Рассмотрены основные методы распознавания изображений, а также предварительные операции, предшествующие контурному анализу. Проанализированы алгоритмы контурного анализа, доказана их практическая эффективность — инвариантность к масштабу и углу поворота объекта на изображении. Проанализированные алгоритмы были практически реализованы – на примере распознавания плоских геометрических фигур.
Введение
Контуры являются областями высокой концентрации информации, слабо зависящей от цвета и яркости. При рассмотрении какого-либо объекта в сознании человека формируется зрительный образ. При восприятии глаз отслеживает линию контура, что приводит к созданию в сознании образа с характерными деталями.
Контурный анализ является совокупностью методов выделения, описания и преобразования контуров изображений и распознавания зрительных образов.
Объект на изображении – плоская геометрическая фигура. Модель объекта – многомерный вектор, координаты которого характеризуют признаки объекта.
Целью данной работы является – распознавание изображений плоских объектов разных масштабов и ориентации в пространстве.
Классификация методов распознавания образов
1. Детерминированные – для построения алгоритмов распознавания используются геометрические меры «близости», основанные на измерении расстояний между распознаваемым объектом и эталонами классов.
2. Вероятностные – применяются вероятностные методы распознавания, основанные на теории статистических решений.
3. Логические – дискретный анализ и основанное на нем исчисление высказываний.
4. Структурные – для построения алгоритмов классов используются специальные грамматики.
5. Комбинированные – используется метод вычисления оценок.
Основная часть
Контурный анализ относится к детерминированным методам распознавания образов и имеет существенный недостаток – необходимо обеспечить отсутствие шума, кроме может быть «белого» на изображении путем предварительной обработки.
В нашем частном случае мы будем искать нормированное скалярное произведения между распознаваемым объектом и эталонным объектом в базе данных.
Собственно, для выделения границы изображения воспользуемся известным алгоритмом Канни, состоящем из пяти шагов:
· Сглаживание – размытие изображения для удаления шума (например, фильтром Гаусса).
· Поиск градиентов — границы отмечаются там, где градиент изображения приобретает максимальное значение.
· Утончение (подавление не-максимумов) — только локальные максимумы отмечаются как границы.
· Двойная пороговая фильтрация — применение порога, чтобы определить находится или нет граница в данной точке изображения.
· Трассировка области неоднозначности — упрощённо, задача сводится к выделению групп пикселей, получивших на предыдущем этапе промежуточное значение, и отнесению их к границе (если они соединены с одной из установленных границ) или их подавлению (в противном случае).
Далее стоит упомянуть способ кодирования контуров. В контурном анализе используется именно комплекснозначное кодирование, потому что операция скалярного произведения для векторов и для комплексных чисел — различны. Операции над контуром именно как над вектором комплексных чисел обладает необходимыми математическими свойствами, по сравнению с другими способами кодирования.
Рис 1. Координаты элементарного вектора при комплексозначном кодировании.
Контур объекта представлен совокупностью элементарных векторов. Элементарный вектор (далее ЭВ) γ(n) – вектор, соединяющий центры или узлы соседних контурных ячеек сетчатки, проведенный в направлении обхода.
Свойства комплесозначных кодов:
1) Коды инвариантны к переносу изображений.
2) При смещении на d элементов начальной точки происходит сдвиг номера ЭВ на величину d, т.е.
В контурном анализе оперируют комплексозначным представлением контура в комплексном пространстве . Скалярное произведение в действительном координатном пространстве позволяет ввести не только норму для вектора этого пространства, но и обобщить понятие угла между векторами: . В пространстве НСП в общем случае является комплексной величиной и не может быть косинусом какого-либо действительного угла.
Существует такое понятие, как экстремальное свойство нормированного скалярного произведения (далее НСП) в . В соответствии с неравенством Коши-Буняковского для комплексных чисел имеем . На основании этого:
1) Модуль НСП в пространстве равен нулю, если контуры Г и N ортогональны, и принимает максимальное значение, равное единице, если Г и N – это один и тот же контур, причем контур N может быть повернут относительно контура Г на произвольный угол и изменен в масштабе в Простым языком НСП в может принимать значение 1, что означает высокую степень близости распознаваемого объекта эталонному.
2) Максимальное значение модуля НСП в инвариантно к преобразованию поворота ВК, т.е. если то модуль НСП сохраняет свое экстремальное значение независимо от угла поворота При этом НСП в таким свойством не обладает.
3) Значение максимума модуля НСП инвариантно к изменению масштаба контура за счет растяжения каждого его ЭВ в раз.
Инвариантность максимума модуля НСП в к углу поворота контура позволяет считать повернутые относительно друг друга контуры одними и теми же.
Результаты моделирования и их анализ
Как мы уже выяснили, признаком сравнения между изображением, приходящим на вход системы технического зрения и эталонного изображения, хранящегося в базе данных, является модуль нормированного скалярного произведения. Так же в программе присутствуют некоторые вспомогательные операции, предшествующие контурному анализу.
Эксперимент 1. Сравнение двух прямоугольников. Подаваемый на вход, в отличие от эталонного, повернут на 90 градусов.
Рис.2. Эталонное изображение объекта
Заранее известны координаты контура N эталонного изображения: N =
Рис 3. Изображение, поданное на вход системы технического зрения (контур Г)
Опустим процесс бинаризации, применение алгоритма Канни для выделения границы второго изображения, соединение получившихся отрезков элементарными векторами и сразу же запишем координаты контура Г, пришедшего на вход системы технического зрения: .
Скалярное произведение: .
Модуль НСП этих контуров в пространстве , равный свидетельствует о том, что эти формы абсолютно одинаковы.
Заключение
Основные выводы:
- Методы контурного анализа являются оптимальными для определения близости двух объектов, несмотря на имеющиеся недостатки.
- Методы контурного анализа требуют проведения предварительной обработки изображения.
- Контуры объекта, в отличии от его остальных точек, устойчивы на изображениях, полученных в разное время, разных ракурсах, условиях погоды и при смене датчика.
- Контуры позволяют создать простые аналитические описания изображений объектов, инвариантных к переносу, повороту и масштабированию изображения.
- Пространством, в котором целесообразно проводить контурный анализ, является . Элементарные векторы контура адекватно отражаются в нем комплексными числами.

- Показано, что модуль нормированного скалярного произведения двух контуров, рассматриваемых, как векторы, является характеристикой близости этих контуров, инвариантной к преобразованиям переноса, поворота и масштабирования.
Список литературы
- Фурман Я.А. Введение в контурный анализ/ Я.А. Фурман, А.В. Кревецкий, А.К. Передреев. — 2-е изд., испр. — М.: ФИЗМАТЛИТ, 2003. — 592 стр.
- Леухин А.Н. Многомерный гиперкомплексный контурный анализ и его приложения к обработке изображений и сигналов/ А.Н. Леухин — М.: МарГТУ, 2004. — 36 стр.
- Гонсалес Р. «Цифровая обработка изображений»/ Р. Гонсалес, Р. Вудс, 2-е изд.испр.- М.: ТЕХНОСФЕРА, 2012 — 1104 стр.
- Warkenar C.S. A heuristic clustering algorithm using union of overlapping pattern-cells/ C.S. Warkenar, G. Krishna, M.: Pattern recognition, 2000. — 85 стр.
История. Новое время. Контурные карты. 9 класс Тороп В. В.

- Главная /
- Каталог /
- Основное образование (5-9 классы) /
- История России, Всеобщая история /
-
История.
Новое время. Контурные карты. 9 класс
Линия УМК: Всеобщая история. Вигасин А.А. — Сороко-Цюпа О.С. (5-10)
Серия: Нет
Автор: Тороп В. В.
121,00 ₽
Количество:
Аннотация
Цветные контурные карты выполнены в технике объёмного изображения рельефа. Система заданий разных типов и уровней сложности ориентирована на: закрепление основных исторических знаний; формирование базовых навыков; развитие аналитических и творческих способностей школьников.
| Артикул | 15-1158-01 |
| ISBN | 978-5-09-091940-1 |
| Год титула | 2022 |
| Размеры, мм | 220x280x1 |
| Красочность | цветная |
| Вес, кг | 0,0400 |
| Класс/Возраст |
9 кл.![]() |
| Предмет | Всеобщая история |
| Издательство | Просвещение |
Оставьте отзыв первым
Обнаружение и рисование контуров · JuliaImages
Эта демонстрация показывает, как обнаруживать контуры на бинарных изображениях. Используемый алгоритм — «Топологический структурный анализ оцифрованных бинарных изображений по границам» Судзуки и Абе (то же, что и OpenCV). #
Точки представлены с использованием CartesianIndex. Контуры представлены в виде вектора точек. Направление — это одно число от 1 до 8.
Шаги внутри функций отмечены так же, как и в оригинальной статье
с использованием изображений, TestImages, FileIO
# N NE E SE S SW W NW
# направление между двумя пикселями
# направление вращения по часовой стрелке
функция по часовой стрелке (реж.)
возврат (режим)%8 + 1
конец
# направление вращения против часовой стрелки
функция против часовой стрелки (реж.)
возврат (режим+6)%8 + 1
конец
# переход от текущего пикселя к следующему в заданном направлении
функция перемещения (пиксель, изображение, директория, dir_delta)
newp = пиксель + dir_delta[dir]
высота, ширина = размер (изображение)
if (0 < newp[1] <= высота) && (0 < newp[2] <= ширина)
если изображение[новыйp]!=0
вернуть ньюп
конец
конец
вернуть Декартовский индекс (0, 0)
конец
# находит направление между двумя заданными пикселями
функция from_to(from, to, dir_delta)
дельта = туда-от
вернуть findall(x->x == delta, dir_delta)[1]
конец
функция detect_move (изображение, p0, p2, nbd, граница, готово, dir_delta)
реж = from_to (p0, p2, dir_delta)
перемещен = по часовой стрелке (режим)
p1 = Декартовский индекс (0, 0)
при перемещении != dir ## 3.
1
newp = перемещение (p0, изображение, перемещение, dir_delta)
если новоеp[1]!=0
р1 = новыйр
перерыв
конец
перемещено = по часовой стрелке (перемещено)
конец
если p1 == CartesianIndex(0, 0)
возвращаться
конец
р2 = р1 ## 3.2
р3 = р0 ## 3.2
сделано .= ложь
пока правда
каталог = from_to (p3, p2, dir_delta)
перемещено = против часовой стрелки (режим)
p4 = Декартовский индекс (0, 0)
сделано .= ложь
пока верно ## 3.3
p4 = переместить (p3, изображение, перемещено, dir_delta)
если p4[1] != 0
перерыв
конец
сделано [перенесено] = верно
перемещено = против часовой стрелки (перемещено)
конец
push!(граница, p3) ## 3.4
если p3[1] == размер(изображение, 1) || сделано[3]
изображение[p3] = -nbd
иначе если изображение[p3] == 1
изображение[p3] = nbd
конец
если (p4 == p0 && p3 == p1) ## 3.
5
перерыв
конец
р2 = р3
р3 = р4
конец
конец
функция find_contours(изображение)
количество = 1
лнбд = 1
изображение = Float64.(изображение)
контур_список = вектор {тип (декартовский индекс [])} ()
сделано = [ложь, ложь, ложь, ложь, ложь, ложь, ложь, ложь]
# Район Мура по часовой стрелке.
dir_delta = [ДекартовскийИндекс(-1,0) , ДекартовскийИндекс(-1,1), ДекартовскийИндекс(0,1), ДекартовскийИндекс(1,1), ДекартовскийИндекс(1,0), ДекартовскийИндекс(1,-1), ДекартовскийИндекс( 0, -1), Декартовский индекс (-1, -1)]
высота, ширина = размер (изображение)
для i=1:высота
лнбд = 1
для j=1:ширина
fji = изображение [i, j]
is_outer = (image[i, j] == 1 && (j == 1 || image[i, j-1] == 0)) ## 1 (a)
is_hole = (изображение[i, j] >= 1 && (j == ширина || изображение[i, j+1] == 0))
если is_outer || is_hole
№ 2
граница = Декартовский индекс[]
от = CartesianIndex(i, j)
если is_outer
количество += 1
от -= CartesianIndex(0, 1)
еще
количество += 1
если fji > 1
лнбд = фджи
конец
от += CartesianIndex(0, 1)
конец
p0 = Декартовский индекс (i, j)
detect_move(image, p0, from, nbd, border, done, dir_delta) ## 3
если пусто(граница) ##TODO
нажать!(граница, p0)
изображение[p0] = -nbd
конец
push!(contour_list, граница)
конец
если fji != 0 && fji != 1
lnbd = абс (fji)
конец
конец
конец
вернуть контур_список
конец
# контур представляет собой вектор из двух массивов целых чисел
функция draw_contour (изображение, цвет, контур)
для инд в контуре
изображение [инд.
] = цвет
конец
конец
функция draw_contours (изображение, цвет, контуры)
для cnt в контурах
draw_contour (изображение, цвет, куб)
конец
конец
# загрузить изображения
img1 = тестовое изображение ("мандрил")
img2 = тестовое изображение ("маяк")
# преобразовать в оттенки серого
imgg1 = серый.(img1)
imgg2 = серый.(img2)
# порог
imgg1 = imgg1 .> 0,45
imgg2 = imgg2 .> 0,45
# вызов find_contours
cnts1 = найти_контуры (imgg1)
cnts2 = найти_контуры (imgg2)
img3 = копировать (img1)
img4 = копировать (img2)
# наконец, рисуем обнаруженные контуры
draw_contours (img3, RGB (1,0,0), cnts1)
draw_contours (img4, RGB (1,0,0), cnts2)
vcat([img1 img2], [img3 img4]) Эта страница была создана с использованием DemoCards.jl и Literate.jl.
Контурный подход к мультисенсорной регистрации изображений
. 1995;4(3):320-34. дои: 10.1109/83.366480. Х Ли 1 , Б.
С. Манджунатх, С. К. Митра
принадлежность
- 1 Отдел электр. и вычисл. инженер, Калифорнийский университет, Санта-Барбара, Калифорния.
- PMID: 18289982
- DOI: 10.1109/83.366480
Х. Ли и др. Процесс преобразования изображений IEEE. 1995.
. 1995;4(3):320-34. дои: 10.1109/83.366480.Авторы
Х Ли 1 , Б.С. Манджунатх, С.К. Митра
принадлежность
- 1 Отдел электр.
и вычисл. инженер, Калифорнийский университет, Санта-Барбара, Калифорния.
- PMID: 18289982
- DOI: 10.1109/83.366480
Абстрактный
Регистрация изображений связана с установлением соответствия между изображениями одной и той же сцены. Одной из сложных проблем в этой области является регистрация мультиспектральных/мультисенсорных изображений. Как правило, такие изображения имеют разные характеристики уровня серого, и простые методы, например основанные на корреляции площадей, не могут быть применены напрямую. С другой стороны, контуры, изображающие границы областей, в большинстве случаев сохраняются. Авторы представляют два метода на основе контуров, которые используют границы областей и другие сильные края в качестве согласующихся примитивов.
Первый алгоритм сопоставления контуров основан на корреляции цепного кода и других критериях подобия формы, таких как инвариантные моменты. Замкнутые контуры и выступающие участки вдоль открытых контуров сопоставляются отдельно. Этот метод хорошо работает для пар изображений, в которых хорошо сохраняется контурная информация, таких как оптические изображения со спутников Landsat и Spot. Для совмещения оптических изображений с радиолокационными изображениями с синтезированной апертурой (РСА) авторы предлагают схему согласования упругих контуров, основанную на модели активного контура. Используя контуры из оптического изображения в качестве начального условия, точные местоположения контуров на изображении SAR получаются путем применения модели активного контура. Оба метода сопоставления контуров являются автоматическими и достаточно эффективными в вычислительном отношении. Экспериментальные результаты с различными видами данных изображений подтвердили надежность алгоритмов, которые превзошли ручную регистрацию с точки зрения среднеквадратичной ошибки в контрольных точках.
Похожие статьи
- Адаптивная реконструкция трубчатых органов человека по трехмерному ультразвуковому объему.
Мин К., Чой Ю.Дж. Мин К. и др. Comput Med Imaging Graph. 2006 март; 30(2):109-21. doi: 10.1016/j.compmmedimag.2005.09.004. Epub 2006 17 февраля. Comput Med Imaging Graph. 2006. PMID: 16487680
- Интегрированный активный контур на основе области, границы и формы для разрешения перекрытия нескольких объектов в гистологических изображениях.
Али С., Мадабхуши А. Али С. и др. IEEE Trans Med Imaging. 2012 июль; 31 (7): 1448-60. doi: 10.1109/TMI.2012.21
. Epub 2012 5 апр.
IEEE Trans Med Imaging. 2012.
PMID: 22498689 - Быстрая регистрация педобарографических изображений на основе кривизны контура и оптимизации.

Оливейра Ф.П., Таварес Дж.М., Патаки Т.С. Оливейра Ф.П. и др. Дж. Биомех. 2009 13 ноября; 42 (15): 2620-3. doi: 10.1016/j.jbiomech.2009.07.005. Epub 2009 3 августа. Дж. Биомех. 2009. PMID: 19647829
- Контурная фильтрация двумерных изображений электрофореза.
Кажиюр-Маннар Р., Смиралья Д.Дж., Пласс С., Венгер Р. Кажиюр-Маннар Р. и соавт. Мед имидж анал. 2006 г., июнь; 10 (3): 353-65. doi: 10.1016/j.media.2006.01.004. Epub 2006 13 марта. Мед имидж анал. 2006. PMID: 16531098
- STACS: новая активная контурная схема для сегментации МР-изображений сердца.
Pluempitiwiriyawej C, Moura JM, Fellow, Wu YJ, Ho C. Pluempitiwiriyawej C, et al. IEEE Trans Med Imaging. 2005 май; 24 (5): 593-603.
doi: 10.1109/TMI.2005.843740.
IEEE Trans Med Imaging. 2005.
PMID: 15889547
Посмотреть все похожие статьи
Цитируется
- Регистрация пространственно-временных 3D-изображений для мезомасштабных исследований развития мозга.
Шуваев С., Лазуткин А., Кирьянов Р., Анохин К., Ениколопов Г., Кулаков А.А. Шуваев С. и соавт. Научный представитель 2022 г. 7 марта; 12 (1): 3648. doi: 10.1038/s41598-022-06871-8. Научный представитель 2022. PMID: 35256622 Бесплатная статья ЧВК.
- Метод регистрации гиперспектральных изображений сосудов для картирования оксигенации крови.
Ван Ц., Ли Ц., Чжоу М., Сунь З., Лю Х., Ван Ю. Ван Кью и др. ПЛОС Один. 1 июня 2017 г .; 12 (6): e0178499. doi: 10.


Новое время. Контурные карты. 9 класс

1
newp = перемещение (p0, изображение, перемещение, dir_delta)
если новоеp[1]!=0
р1 = новыйр
перерыв
конец
перемещено = по часовой стрелке (перемещено)
конец
если p1 == CartesianIndex(0, 0)
возвращаться
конец
р2 = р1 ## 3.2
р3 = р0 ## 3.2
сделано .= ложь
пока правда
каталог = from_to (p3, p2, dir_delta)
перемещено = против часовой стрелки (режим)
p4 = Декартовский индекс (0, 0)
сделано .= ложь
пока верно ## 3.3
p4 = переместить (p3, изображение, перемещено, dir_delta)
если p4[1] != 0
перерыв
конец
сделано [перенесено] = верно
перемещено = против часовой стрелки (перемещено)
конец
push!(граница, p3) ## 3.4
если p3[1] == размер(изображение, 1) || сделано[3]
изображение[p3] = -nbd
иначе если изображение[p3] == 1
изображение[p3] = nbd
конец
если (p4 == p0 && p3 == p1) ## 3.
5
перерыв
конец
р2 = р3
р3 = р4
конец
конец
функция find_contours(изображение)
количество = 1
лнбд = 1
изображение = Float64.(изображение)
контур_список = вектор {тип (декартовский индекс [])} ()
сделано = [ложь, ложь, ложь, ложь, ложь, ложь, ложь, ложь]
# Район Мура по часовой стрелке.
dir_delta = [ДекартовскийИндекс(-1,0) , ДекартовскийИндекс(-1,1), ДекартовскийИндекс(0,1), ДекартовскийИндекс(1,1), ДекартовскийИндекс(1,0), ДекартовскийИндекс(1,-1), ДекартовскийИндекс( 0, -1), Декартовский индекс (-1, -1)]
высота, ширина = размер (изображение)
для i=1:высота
лнбд = 1
для j=1:ширина
fji = изображение [i, j]
is_outer = (image[i, j] == 1 && (j == 1 || image[i, j-1] == 0)) ## 1 (a)
is_hole = (изображение[i, j] >= 1 && (j == ширина || изображение[i, j+1] == 0))
если is_outer || is_hole
№ 2
граница = Декартовский индекс[]
от = CartesianIndex(i, j)
если is_outer
количество += 1
от -= CartesianIndex(0, 1)
еще
количество += 1
если fji > 1
лнбд = фджи
конец
от += CartesianIndex(0, 1)
конец
p0 = Декартовский индекс (i, j)
detect_move(image, p0, from, nbd, border, done, dir_delta) ## 3
если пусто(граница) ##TODO
нажать!(граница, p0)
изображение[p0] = -nbd
конец
push!(contour_list, граница)
конец
если fji != 0 && fji != 1
lnbd = абс (fji)
конец
конец
конец
вернуть контур_список
конец
# контур представляет собой вектор из двух массивов целых чисел
функция draw_contour (изображение, цвет, контур)
для инд в контуре
изображение [инд.
] = цвет
конец
конец
функция draw_contours (изображение, цвет, контуры)
для cnt в контурах
draw_contour (изображение, цвет, куб)
конец
конец
# загрузить изображения
img1 = тестовое изображение ("мандрил")
img2 = тестовое изображение ("маяк")
# преобразовать в оттенки серого
imgg1 = серый.(img1)
imgg2 = серый.(img2)
# порог
imgg1 = imgg1 .> 0,45
imgg2 = imgg2 .> 0,45
# вызов find_contours
cnts1 = найти_контуры (imgg1)
cnts2 = найти_контуры (imgg2)
img3 = копировать (img1)
img4 = копировать (img2)
# наконец, рисуем обнаруженные контуры
draw_contours (img3, RGB (1,0,0), cnts1)
draw_contours (img4, RGB (1,0,0), cnts2)
vcat([img1 img2], [img3 img4])
и вычисл. инженер, Калифорнийский университет, Санта-Барбара, Калифорния.
doi: 10.1109/TMI.2005.843740.
IEEE Trans Med Imaging. 2005.
PMID: 15889547