Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Пошук об'єктів за допомогою узагальненого перетворення Хафа

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Для полученного полутонового изображения выполним поиск ребер на изображении с использованием детектора Канни. Схема работы алгоритма Канни и описание параметров соответствующей функции библиотеки OpenCV было приведено в лабораторной работе «Базовые операции обработки изображений». Дополнительно выполним отображение бинарного изображения ребер. Приложение состоит из основной функции и модуля… Читати ще >

Пошук об'єктів за допомогою узагальненого перетворення Хафа (реферат, курсова, диплом, контрольна)

Задача поиска заданных геометрических примитивов на изображении (прямых, эллипсов, окружностей и т. п.) — одна из актуальных задач компьютерного зрения. Данная задача возникает при разработке приложений в сфере робототехники и видеоаналитики в процессе поиска объектов, имеющих типичную геометрическую форму. Также существует опыт применения методов поиска примитивов при распознавании рукописных текстов.

Обобщенное преобразование Хафа — наиболее известный метод определения положения геометрических примитивов заданной формы на изображении.

Преобразование Хафа — метод обнаружения прямых и более сложных кривых на бинарных изображениях. Метод позволяет определить параметры семейства кривых и обеспечивает поиск на изображении множества кривых указанного семейства. Первоначально метод был разработан применительно к поиску прямых линий, впоследствии был обобщен на произвольное семейство кривых, заданных параметрически.

Рассмотрим схему работы преобразования Хафа для определения прямых линий на изображении. Прямую на плоскости можно задать параметрически в виде (1), исходя из геометрического представления, показанного на рис. 1.

Поиск объектов с помощью обобщенного преобразования Хафа.

где Rвеличина перпендикуляра, опущенного из начала координат системы Oxy на прямую, и — угол наклона перпендикуляра относительно оси Ox, 0? и <2р.

преобразование линия хаф opencv.

Параметрическое представление прямой на плоскости.

Рис. 1. Параметрическое представление прямой на плоскости Тогда неявная функция, определяющая семейство прямых, может быть записана в форме (2).

Поиск объектов с помощью обобщенного преобразования Хафа.

Таким образом, через каждую точку (x, y) проходит несколько прямых, соответствующих разным значениям параметров R и и. По существу любой фиксированной точке (x0,y0) ставится в соответствие набор точек в пространстве параметров (R, и). В свою очередь каждой точке (R0,и0) можно поставить в соответствие количество точек (x, y), лежащих на прямой Дискретность представления данных в машине требует введения сетки на плоскости параметров И теперь каждой точке (R0,и0) будем ставить в соответствие количество точек, принадлежащих семейству прямых (3).

Поиск объектов с помощью обобщенного преобразования Хафа.

Выбрав ячейку сетки, которой соответствует максимальное количество точек, получим наиболее вероятную прямую. В качестве параметров этой прямой можно принять координаты центра ячейки сетки. Если необходимо выделить несколько прямых, то достаточно отсортировать множество ячеек сетки в порядке убывания числа точек и выбрать определенное количество первых ячеек.

Схема решения задачи поиска прямых линий на цветном изображении с использованием преобразования Хафа.

Схема решения задачи поиска прямых линий на цветном изображении с использованием преобразования Хафа включает несколько этапов:

  • 1. Загрузка изображения.
  • 2. Преобразование изображения в оттенки серого.
  • 3. Поиск ребер на полученном изображении. Ребра можно найти, например, с использованием детектора Канни. Различные способы выделения ребер были рассмотрены в лабораторной работе «Базовые операции обработки изображений».
  • 4. Применение преобразования Хафа к бинарному изображению, содержащему ребра.
  • 5. Преобразование полученных параметров прямых из полярной системы координат в декартову систему, связанную с исходным изображением.

Общая структура приложения и основной функции.

Приложение состоит из основной функции и модуля hough_transform, содержащего две функции, которые реализуют поиск прямых линий средствами библиотек Intel® IPP и OpenCV соответственно, а также функцию отображения результирующего набора линий на изображении.

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

  • 1. Загрузка исходного изображения с использованием функции imread библиотеки OpenCV.
  • 2. Вызов функции поиска прямых линий hough_opencv, реализованной в модуле hough_transform, которая выполняет поиск средствами OpenCV.
  • 3. Вызов функции hough_ipp, также реализованной в модуле hough_transform. Функция выполняет определение прямых линий с использованием преобразования Хафа, реализованного в библиотеке Intel® IPP.
  • 4. Отображение исходных изображений с отрисованным набором прямых линий.
Поиск объектов с помощью обобщенного преобразования Хафа.

5. Освобождение ресурсов, использованных для работы с изображением Реализация поиска прямых с использованием функций библиотеки OpenCV.

Поиск объектов с помощью обобщенного преобразования Хафа.

Перейдем к рассмотрению функции hough_opencv. Функция принимает в качестве входных параметров исходное изображение srcImg и два вектора точек points1 и points2, каждая пара определяет прямую линию.

В начале блока функции объявим необходимые переменные.

Поиск объектов с помощью обобщенного преобразования Хафа.

Затем выполним преобразование цветного изображения в оттенки серого посредствам вызова функции cvtColor.

cvtColor (srcImg, grayImg, CV_RGB2GRAY);

Для полученного полутонового изображения выполним поиск ребер на изображении с использованием детектора Канни. Схема работы алгоритма Канни и описание параметров соответствующей функции библиотеки OpenCV было приведено в лабораторной работе «Базовые операции обработки изображений». Дополнительно выполним отображение бинарного изображения ребер.

Поиск объектов с помощью обобщенного преобразования Хафа.

Далее к бинарному изображению, содержащему ребра, применим преобразование Хафа посредствам вызова функции HoughLines. Функция принимает следующий набор параметров:

  • 1. edges — исходное бинарное изображение ребер.
  • 2. lines — результирующий вектор прямых линий.
  • 3. rhoStep — шаг дискретизации сетки по радиусу.
  • 4. thetaStep — шаг дискретизации по углу наклона перпендикуляра.
  • 5. houghThreshold — порог, по которому выполняется отсечение ячеек (фактически минимальное количество точек в ячейке, чтобы линия с соответствующими параметрами была продетектирована).

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

Поиск объектов с помощью обобщенного преобразования Хафа.
Показати весь текст
Заповнити форму поточною роботою