Лабораторная работа №3, страница 2

PDF-файл Лабораторная работа №3, страница 2 Системы распознавания образов (84577): Лабораторная работа - 10 семестр (2 семестр магистратуры)Лабораторная работа №3: Системы распознавания образов - PDF, страница 2 (84577) - СтудИзба2021-01-16СтудИзба

Описание файла

PDF-файл из архива "Лабораторная работа №3", который расположен в категории "". Всё это находится в предмете "системы распознавания образов" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 2 страницы из PDF

Желательно построить алгоритм, который обладал бы линейной сложностьюотносительно количества точек границ.Выделение прямых при помощи алгоритма ХафаРассмотрим уравнение прямой, проходящей через точку границы А(xi,yi):yi = k xi + bгде k и b — параметры искомой прямой.Пусть нас пока не смущает невозможность использования этого уравнения для описаниявертикальных прямых — этот вопрос будет рассмотрен немного ниже.В этом уравнении xi и yi являются константами, а k и b являются неизвестными. Перепишемуравнение прямой в другом виде:b = - xi k + yiЛегко убедиться, что это — тоже уравнение некоторой прямой, но в других координатах – k иb, а параметрами прямой являются -xi и yi.Введем в рассмотрение пространство параметров (ПП) прямой <k, b>.

В соответствии сприведенными выше формулами каждой точке пространства <k, b> очевидным образом соответствуетпрямая в пространстве координат изображения <x,y>, а каждой точке границы А(xi,yi) в пространствекоординат изображения соответствует прямая в пространстве параметров прямой <k, b>.

Эти двапространства являются дуальными (рис. 3.1).Предположим, что несколько точек границы лежат на одной прямой. Каждая из этих точек вПП прямой будет порождать свою прямую. Однако все эти прямые должны пересечься в точке <k*,b*>, где k* и b* - параметры прямой, проходящей через все рассматриваемые точки (рис. 3.1). Такимобразом, для обнаружения прямых на изображении надо для каждой точки границы построитьсоответствующую прямую в ПП прямых, а затем найти точки пересечения существенного количестватаких прямых.а)в)б)Рисунок 3.1 — Пространство параметров прямойа) Изображение, содержащее четыре точки границы A,B,C и D, лежащие на одной прямой;б) Пространство параметров прямой, содержащее прямые a,b,c,d, которые соответствуютточкам A,B,C, D;в) Массив счетчиков, представляющий пространство параметров прямой. Максимальныйэлемент массива M[k*,b*] = 4 соответствует прямой y=k* x+b*, проходящей через точки A,B,C и D.Для представления ПП прямых введем двумерный массив счетчиков (рис.

3.1,в) с индексами[k, b]. Каждая ячейка будет хранить количество прямых, проходящих через заданную точку (k, b). Тогдаалгоритм поиска прямых будет выглядеть следующим образом:Алгоритм поиска прямых1.Для каждой точки границы с координатами А(xi,yi):Строим прямую b = - xi k + yi в пространстве <k, b>. Для каждого возможного значения kвычисляем соответствующее значение b и увеличиваем счетчик [k, b] на единицу.2.Для каждой ячейки [k, b] массива счетчиков: если значение счетчика [k, b] большепорогового, то заносим прямую с параметрами k, b в список найденных прямых.Под пороговым значением здесь понимается минимально допустимое количество точекграницы, через которые проходит прямая.

Оно может быть задано заранее либо рассчитано,например, таким образом, чтобы находить заданное количество прямых. Такой алгоритм называетсяпреобразованием Хафа.Недостатком алгоритма Хафа является невозможность выделения вертикальных линий: дляних значение k убегает в бесконечность, а b не определено. Чтобы преодолеть этот недостаток,необходимо отдельно детектировать горизонтальные прямые (с углом наклона до 45 градусов) впространстве <x,y>, и отдельно — вертикальные (с углом наклона больше 45 градусов) в пространстве<y,x>.Такой алгоритм позволяет детектировать линии любой ориентации, однако он имеет другойнедостаток: выделяемые линии оказываются неравноценными: точность описания линий с меньшимуглом наклона выше, чем с большим. Пространство поиска <k, b> оказывается анизотропным — в немразличные направления неравноценны.Использование нормальной формы прямойСуществует ли изотропное пространство параметров прямой? Безусловно.

Для этоговоспользуемся нормальной формой параметризации прямой. Нормальная форма предусматриваетопределение прямой через ее вектор нормали (,): = x Cos + y Sinгде — длина нормали,— угол наклона нормали,x,y — координаты точки, принадлежащей прямой.Вместо пространства <k, b> будем рассматриватьдетектирования прямых изменится следующим образом:пространство<,>.АлгоритмАлгоритм детектирования прямых с использованием нормальной формы1.Для каждой точки границы с координатами А(xi,yi):Строим синусоиду  = xi Cos  + yi Sin  в пространстве <,>.

Для  от 0 до 360 градусоввычисляем соответствующее значение  и увеличиваем счетчик H[,] на единицу.2.Для каждой ячейки H[,] массива счетчиков: если значение счетчика H[,] большепорогового, то заносим прямую с параметрами , в список найденных прямых.Данный алгоритм очень похож на предыдущий,но вместо прямых в пространстве параметров строятсясинусоиды.Одной прямой на изображении в пространстве<,> будут соответствовать два максимума: (,) и (,+180), один из которых следует исключить. Для этогоследует либо отбрасывать отрицательные значения ,либо изменять  от 0 до 180 градусов.Максимальное значение мах для верхнейграницы массива счетчиков найти достаточно легко: этомаксимально возможное расстояние до прямой наизображении.

Расстояние будет максимальным, еслипрямая проходит через самый дальний уголизображения. Таким образом, мах равно расстоянию додальнего угла изображения.Вычисление синусов и косинусов в данномалгоритме производится заранее, значения с нужным шагом переводится в формат с фиксированнойточкой и заносятся в таблицу.Детектирование отрезковНа практике гораздо более полезно иметь представление объекта не в виде прямых, а в видеотрезков: отрезки гораздо более локализованы в пространстве, и можно легко отделить отрезки,принадлежащие объекту интереса и не принадлежащие ему.В случае с прямыми это сделать затруднительно.Отрезок, в отличие от прямой, будет иметь уже четыре параметра вместо двух.

Например, этомогут быть координаты концов отрезка.Предположим для начала, что на одной прямой может лежать только один отрезок. В этомупрощенном случае отрезок может быть однозначно идентифицирован прямой, проходящей черезнего. Тогда идентификационные параметры отрезка можно сократить с четырех до двух, например,до параметров нормали < ρ,φ >Что же делать с другими параметрами, необходимыми для полного описания отрезка? Мыотнесем их к дескриптивным параметрам. Для их учета и накопления расширим ячейки счетчика: пустькаждый счетчик теперь содержит не только количество точек в отрезке, но и дополнительнуюдескриптивную информацию, например – максимальную и минимальную координаты x и y отрезка.Получим расширенное пространство поиска: оно по-прежнему двумерно, но имеет более сложнуюструктуру из-за учета дескриптивных параметров.

Помимо максимальных и минимальных координат,расширенное пространство поиска может хранить и другую информацию, например, направлениеградиента вдоль отрезка.Необходимо отметить, что максимальная и минимальнаякоординаты – это не совсем концы отрезка, это – координатыминимальной по размеру прямоугольной области, содержащейотрезок. Координаты углов нижнего левого и верхнего правогоуглов этой области не обязательно совпадают с концами отрезков.Однако получить координаты концов отрезков не составляеттруда. Если угол φ принадлежит первой или третьей четверти, тодля получения координат концов отрезка нужно поменятьместами ymin и ymaxАлгоритм поиска в расширенном пространстве поиска можно записать в следующем виде:1.Для каждой точки границы А(xa,ya) с градиентом G(gx,gy) рассчитываем <ρ,φ> находим ячейку H[ρ,φ] увеличиваем счетчик: H[ρ,φ].C++ корректируем концы отрезка:если H.xmin > xa то H.xmin = xaесли H.xmax < xa то H.xmax = xaесли H.ymin > ya то H.ymin = yaесли H.ymax < ya то H ymax = ya2.Находим локальные максимумы H* [ρ*,φ*].C, соответствующие наиболее длинным ичетким отрезкам; если φ* принадлежит первой или третьей четверти, то меняем местамиφmin и φmax .Очевидно, что алгоритм является модификацией алгоритма поиска прямых.

Добавляютсятолько операции сравнения концов, удельный вес которых в общей доле вычислений достаточно мал.Ход работыЧасть 1. Поиск границЗапустите графический редактор Paint (или любой другой) и нарисуйте черный пятиугольник.Сохраните изображение в формате BMP или PNG в рабочей папке со скриптом.В Матлабе создайте новый скрипт, загрузите изображение с пятиугольником (imread),убедитесь, что оно загрузилось и может быть отображено на экране (imshow).

Обратите внимание, чтоматрица изображения – трёхмерная, она содержит три цветовые плоскости. Преобразуем его вполутоновое серое (rgb2gray). Убедитесь, что матрица изображения стала двухмерной.Будем считать, что яркость объекта нам неизвестна, и попробуем найти его границы.Зададим маску фильтра Собела в виде матрицы 3х3: Sx=[-1 0 1;-2 0 2;-1 0 1], Sy=Sx'и найдем производные по обеим координатам (imfilter). Обратите внимание, что в процесседифференцирования могут появляться отрицательные числа, которые не могут быть представлены вбайтовом формате (uint8). Поэтому изображение нужно преобразовать в знаковый формат, например– double (im2double).A=im2double(A);Dx=imfilter(A,Sx);Dy=imfilter(A,Sy);%Производная по х даст вертикальные границы%Производная по у даст вертикальные границыОтобразите найденные границы на экране, убедитесь, что они отображены верно.

Обратитевнимание, что отрицательные производные (переход от белого к черному) отобразятся в виде черныхточек, а положительные – в виде белых. Точки, не содержащие границ, отобразятся как серые.Найдите модуль и фазу градиента яркости по формулам:|G|=sqrt(Dx^2+Dy^2);=atan2d(Dy,Dx);Отобразите модуль градиента на экране и рассмотрите его. Можно увидеть, что линии границ– достаточно толстые. Давайте уменьшим толщину границ до единицы (edge):E=edge(A);Внутри функции edge уже есть фильтр Собела и расчет градиента. Эта функция включает в себявсе операции поиска границ, далее мы будем пользоваться в основном ею.Далее приведен полный код первой части.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5288
Авторов
на СтудИзбе
417
Средний доход
с одного платного файла
Обучение Подробнее