Библиотека OpenCV

Первым и наиболее очевидным критерием был низкий уровень погрешности. Очень важно, чтобы точность угловых точек изображения не была потеряна и, следовательно, чтобы не возникало ссылок на не угловые точки. Вторым критерием выступал хороший уровень локализации угловых точек. Иными словами, чтобы расстояние между найденными угловыми точками и действительными углами сводилось к минимуму. Третьим критерием было, чтобы каждому углу соответствовало не более одной точки. Этот критерий был поставлен, поскольку первых двух было недостаточно для полного исключения возможности множественного соответствования различных точек одному и тому же углу.

Основываясь на этих критериях, детектор углов Кэнни сначала сглаживает изображение для уменьшения шума. Потом находит градиент изображения в каждой точке для выделения областей с наибольшей величиной пространственной производной. Далее алгоритм проходит по этим областям и глушит пиксели с не максимальным значением градиента (процедура nonmaximum suppression). Массив градиентов далее сокращается процедурой гистерезиса (лат. - hysteresis), которая используется для обработки оставшихся пикселей, которые не были приглушены. Процедура гистерезиса использует два порога. Если величина градиента меньше первого, то пиксель устанавливается в ноль (не угол). Если величина градиента больше второго порога, пиксель устанавливается в максимальное значение (делается углом). И если величина лежит между двумя порогами, то пиксель не устанавливается в ноль, пока не найден путь от данного пикселя к пикселю с величиной градиента больше второго порога.

В библиотеке компьютерного зрения OpenCV этот оператор представлен функцией

void cvCanny( const CvArr* image, CvArr* edges, double threshold1, double threshold2, int aperture_size=3 ),

где image - входное изображение; edges - изображение для выделения краев с помощью функции ; threshold1 - первый порог изображения; threshold2 - второй порог изображения; aperture_size - размер апертуры изображения.

Детектор Харриса. За последние двадцать лет было создано довольно много различных детекторов точечных особенностей изображений. Чаще всего используются детектор Харриса и детектор по минимальным собственным значениям. В данной работе реализованы оба.

Рассмотрим детектор по минимальным собственным значениям. Берем первое изображение последовательности. Для каждого пикселя рассчитываем следующую матрицу:

(3.8)

где - яркость в точке, - весовая функция по окрестности , в качестве которой обычно берут распределение Гаусса. У точки, окрестность которой похожа на угол, матрица будет иметь два больших положительных собственных значения. Таким образом, условие похожести точки на угол запишется следующим образом:

(3.9)

Теперь остается найти локальные максимумы функции отклика угла , которые и будут соответствовать особым точкам.

Чтобы упростить вычисления, Харрис предложил отказаться от подсчета собственных значений матрицы, и вместо них ввел следующую функцию отклика угла:

(3.10)

В библиотеке компьютерного зрения OpenCV этот оператор представлен функцией

void cvCornerHarris( const CvArr* image, CvArr* harris_responce,block_size, int aperture_size=3, double k=0.04 ),

где image - входное изображение; harris_responce - изображение для вывода функции, которое должно иметь такой же размер как и входное изображение; block_size - размер блоков; aperture_size - размер апертуры изображения; k - свободный параметр детектора Харриса; - параметр Харриса, его величина обычно лежит в пределах и определяется эмпирически.

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

Перейти на страницу: 1 2 3 4 5

Другое по теме:

Разработка и изготовление автомата подачи звонков
То, что время - одна из двух основных форм существования материи, известно еще со школы. Однако нас интересует сейчас не философское понятие, а проблема измерения времени. Существует множество средств измерения времени, н ...

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

©  www.techvarious.ru - 2020