русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Векторизация растровых изображений. Метод Хафа


Дата добавления: 2013-12-23; просмотров: 1557; Нарушение авторских прав


Задача: поиск примитивов в растровом изображении.

Все примитивы искомого типа (например, окружности, прямые, треугольники и т.п.) описываются уравнением:

f(x, y, p) = 0

где

x, y — координаты [граничного] пикселя,

p — набор параметров (вектор, обычно вещественный), с изменением которого получаются разные примитивы.

Алгоритм:

1 Строится ассоциативный массив А (“аккумулятор”), размерность которого равна количеству элементов в p. В начале массив полностью состоит из нулей (или просто пуст).

○ Например, для прямой y = kx + b нужно использовать двумерный массив, так как имеются два неизвестных параметра: p1 = k и p2 = b. Два измерения массива А соответствуют различным значениям параметров k и b.

2 Для каждой точки <и её соседей> алгоритм определяет, достаточен ли вес границы в этой точке. Если да, то вычисляются параметры всех возможных примитивов, проходящих через эту точку в заданном направлении (используем направление градиента), и увеличиваются соответствующие этим параметрам значения в ячейках аккумулятора.

3 Среди значений массива А находятся те, которые превосходят некоторый порог. Соответствующие им параметры p определяют искомые примитивы.

 

Замечания (Босик Босикович)

● С математической точки зрения, множество параметров p может быть бесконечным (например, через одну точку можно провести бесконечно много прямых), поэтому в практической реализации потребуется сделать это множество ограниченным и дискретным.

● Возможно, на третьем шаге перед поиском максимумов придётся сначала сгладить (“размыть”) массив p.

 

Случай отрезков

  Ищем отрезки, которые начинаются в (0,0). Для каждого пикселя изображения смотрим, если значение больше некоторого порога, то он потенциально лежит на отрезке, который заканчивается в (a,b). Увеличиваем все элементы массива А, которые соответствуют прямым, через которые может проходить данный пиксель. В результате те значения (a,b), для которых в матрице A находятся значения, большие некоторого порога, будут характеризовать самые вероятные примитивы.
  Какое уравнение лучше использовать для задания прямой? ● y=kx+b — не позволяет описать вертикальную прямую. ● ax+by+c=0 — тут три параметра, много. ● xcosα + ysinα = d — два параметра, нормально. α-угол, d-расстояние. Зная градиент и α, можем найти d.

 



Проблемы:

● Может быть очень большой массив А

● Эффективность зависит от того, каким образом задано уравнение примитива, т.е. сколько параметров в векторе р.

● Для одного (x,y) находим множество (a,b)

 

Случай окружности Окружность задается параметрами (a,b,r): (a, b) — центр, r — радиус. Находим градиент в граничной точке. Его направление совпадает с направлением r, значит на этой прямой где-то лежит центр окружности. Перебираем все возможные значения радиуса, получаем набор значений (a,b,r) и увеличиваем элементы массива А, расположенные по этим координатам.  


<== предыдущая лекция | следующая лекция ==>
Идея согласованных фильтров | Методы сегментации изображений. Модели описания сегментов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.